我正在通过CodeAcademy进行工作,那里有一个问题尚未得到解答。任务是获取列表列表,并为其所有元素制作一个列表。紧接下面的代码是有效的我的答案。但是我不明白的是为什么“项目”被视为该代码列表中的元素,而(请参见下面的注释)…
m = [1, 2, 3] n = [4, 5, 6] o = [7, 8, 9] def join_lists(*args): new_list = [] for item in args: new_list += item return new_list print join_lists(m, n, o)
…下面代码中的“项目”被视为整个列表,而不是列表中的元素。下面的代码给出了输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
我还尝试使用: new_list.append(item [0:] [0:]) 认为它会遍历索引和子索引,但给出的结果相同。我只是不明白这是怎么解释的。
m = [1, 2, 3] n = [4, 5, 6] o = [7, 8, 9] def join_lists(*args): new_list = [] for item in args: new_list.append(item) return new_list print join_lists(m, n, o)
另外,我知道我可以在上面的代码中添加另一个for循环,并且我知道为什么可以这样做,但是我仍然不明白为什么Python会以不同的方式解释它们。
该+=名单上就地增加操作符做同样的事情与调用list.extend()上new_list。.extend()进行迭代,并将每个元素添加到列表中。
+=
list.extend()
new_list
.extend()
list.append()另一方面,将 单个 项目添加到列表中。
list.append()
>>> lst = [] >>> lst.extend([1, 2, 3]) >>> lst [1, 2, 3] >>> lst.append([1, 2, 3]) >>> lst [1, 2, 3, [1, 2, 3]]