gpt4 book ai didi

python - 为什么要扩展 python 列表

转载 作者:太空狗 更新时间:2023-10-29 21:20:17 29 4
gpt4 key购买 nike

既然可以只使用 += 运算符,为什么还要使用 extend?哪种方法最好?另外,将多个列表合并为一个列表的最佳方式是什么

#my prefered way
_list=[1,2,3]
_list+=[4,5,6]
print _list
#[1, 2, 3, 4, 5, 6]

#why use extend:
_list=[1,2,3]
_list.extend([4,5,6])
print _list
#[1, 2, 3, 4, 5, 6]



_lists=[range(3*i,3*i+3) for i in range(3)]
#[[0, 1, 2], [3, 4, 5], [6, 7, 8]]

#my prefered way of merging lists
print sum(_lists,[])
#[0, 1, 2, 3, 4, 5, 6, 7, 8]


#is there a better way?
from itertools import chain
print list(chain(*_lists))
#[0, 1, 2, 3, 4, 5, 6, 7, 8]

最佳答案

+= 只能用于将一个列表扩展为另一个列表,而 extend 可用于将一个列表扩展为>一个可迭代的对象

例如

你可以做到

a = [1,2,3]
a.extend(set([4,5,6]))

但是你做不到

a = [1,2,3]
a += set([4,5,6])

对于第二个问题

[item for sublist in l for item in sublist] is faster.

参见 Making a flat list out of list of lists in Python

关于python - 为什么要扩展 python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8775558/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com