gpt4 book ai didi

Python 列表列移动

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:31 24 4
gpt4 key购买 nike

我正在尝试将列表中的第二个值移动到每个嵌套列表的列表中的第三个值。我尝试了以下方法,但没有按预期工作。

代码

List = [['a','b','c','d'],['a','b','c','d'],['a','b','c','d']]
print(List)
col_out = [List.pop(1) for col in List]
col_in = [List.insert(2,List) for col in col_out]
print(List)

结果

[['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'd']]
[['a', 'b', 'c', 'd'], [...], [...]]

期望的结果

[['a', 'c', 'b', 'd'], ['a', 'c', 'b', 'd'], ['a', 'c', 'b', 'd']]

更新

根据 pynoobs 评论,我想出了以下内容。但我还不在那里。为什么要打印 'c'?

代码

List = [['a','b','c','d'],['a','b','c','d'],['a','b','c','d']]
col_out = [col.pop(1) for col in List for i in col]
print(col_out)

结果

['b', 'c', 'b', 'c', 'b', 'c']

最佳答案

[List.insert(2,List) for col in col_out]
^^^^ -- See below.

您正在将整个列表作为同一列表中的一个元素插入。想想递归!


此外,请避免在列表理解中使用状态更改表达式。列表理解应该NOT修改任何变量。这是不礼貌的行为!

在你的情况下,你会这样做:

lists = [['a','b','c','d'],['a','b','c','d'],['a','b','c','d']]
for lst in lists:
lst[1], lst[2] = lst[2], lst[1]
print(lists)

输出:

[['a', 'c', 'b', 'd'], ['a', 'c', 'b', 'd'], ['a', 'c', 'b', 'd']]

关于Python 列表列移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257687/

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