"[a] + [b]" 和 "[a].extend([b])" 有什么区别呢?

12 浏览
0 Comments

"[a] + [b]" 和 "[a].extend([b])" 有什么区别呢?

这个问题已经有了答案
合并两个列表——'+='和extend()的区别

社区在1年前评审过是否重新打开此问题 并将其关闭:

原来的关闭原因仍未解决

Python中有两种合并列表的方法:

  1. ['a', 'b', 'c'] + ['x', 'y', 'z']
  2. ['a', 'b', 'c'].extend(['x', 'y', 'z'])

这两种方法有什么区别?


更Pythonic的合并超过2个列表的方法是什么?

['a', 'b', 'c'] + [1, 2, 3] + ['x', 'y', 'z']


gucci_list = ['a', 'b', 'c']
gucci_list.extend([1, 2, 3])
gucci_list.extend(['x', 'y', 'z'])


那么,如何将两种方法结合起来使用?

['a', 'b', 'c'].extend([1, 2, 3] + ['x', 'y', 'z'])

admin 更改状态以发布 2023年5月21日
0
0 Comments

第一条语句创建一个由两个匿名列表组成的新列表,并将其存储在变量new_list中:

new_list = ['a', 'b', 'c'] + ['x', 'y', 'z']
#['a', 'b', 'c', 'x', 'y', 'z']

第二条语句创建一个匿名列表['a','b','c']并将另一个匿名列表附加到其末尾(现在,第一个列表是['a','b','c','x','y','z'])。 然而,列表仍然是匿名的,不能在将来访问。由于方法extend不返回任何内容,因此分配后变量的值为None。

new_list = ['a', 'b', 'c'].extend(['x', 'y', 'z'])
#None

如果首先命名列表,然后再修改它,第二条语句就可以变得有用:

old_list = ['a', 'b', 'c']
old_list.extend(['x', 'y', 'z']) # Now, the old list is a new list

0
0 Comments

['a', 'b', 'c'] + ['x', 'y', 'z']创建一个新的列表。

['a', 'b', 'c'].extend(['x', 'y', 'z'])通过将第二个列表添加到第一个列表中来修改第一个列表。由于第一个列表没有被一个变量引用,因此将无法访问结果列表。

0