提问人:Youssef Joe 提问时间:8/19/2023 更新时间:8/19/2023 访问量:55
为什么我不能在一个大列表中扩展两个单独的列表 [重复]
why cant i extend two separated lists inside one big list [duplicate]
问:
我有一个包含三个列表的列表,我试图将其转换为一个列表,其中包含 3 个独立列表中的所有项目,并且顺序相同
例如,我有一个列表“B”,里面有 3 个列表。我在 (len(B)-1) 范围内运行了 for 循环,应用了以下命令:
B[0]=B[0].扩展(B[1])
但是 B[0] 的值变为 None。我不知道为什么
小提示:我正在解决的问题是阻止我在代码中使用任何 if 条件
答:
0赞
Tom Karzes
8/19/2023
#1
list 方法以破坏性方式修改列表并返回 。所以任务extend
None
B[0]=B[0].extend(B[1])
首先通过扩展它来修改它,然后根据赋值将其替换为。您可以将其替换为:B[0]
None
B[0].extend(B[1])
这将通过使用 扩展它来进行破坏性修改。它等价于 ,它也破坏性地修改了 。B[0]
B[1]
B[0] += B[1]
B[0]
这解释了您的代码当前正在执行的操作,但并不能解决您的问题。如果您只想创建一个新列表,即子列表的串联,您可以执行以下操作:
new_list = sum(B, [])
这将创建一个由子列表串联组成的新列表。
评论
0赞
Swifty
8/19/2023
您甚至可以将其替换为在扩展 B[0] 的同时删除 B[1]。B[0].extend(B.pop(1))
评论
.extend
.extend