如何在两级列表的每一部分插入一个元素?(python)

uubf1zoe  于 2023-01-12  发布在  Python
关注(0)|答案(4)|浏览(133)

我有一个两级列表,每个列表中有3个float元素,如下所示:[[0.0,0.0,0.0],[0.0,5.0,0.0],[2.53188872,2.16784954,9.49026489],[5.0,0.0,0.0]....]我需要在此列表的每个元素的开头插入一个数字),这样它看起来就像这样:[[1、0.0、0.0、0.0]、[2、0.0、5.0、0.0]、[3、2.53188872、2.16784954、9.49026489]、[4、5.0、0.0、0.0].]
我尝试使用for循环:
对于范围内的i(len(additional_nodes)):附加节点[i].insert(0,i+1)打印(附加节点)
但我得到了这样的东西:[31、28、25、0、0.0、0.0、0.0]、[16、12、10、4、1、0.0、5.0、0.0]、[53、50、47、44、41、38、35、32、29、26、23、20、17、14、11、8、5、2、2.53188872、2.16784954,9.49026489]......]我有什么问题?

oo7oh9g9

oo7oh9g91#

尝试以下操作,循环中出现错误:

for i in range(len(additional_nodes)):
additional_nodes[i].insert(0, i+1)

或者,如果你愿意,最好列举:

for i, lst in enumerate(additional_nodes, start=1):
    lst.insert(0, i)
bmp9r5qi

bmp9r5qi2#

最好像这样使用enumerate:

mlist = [[0.0, 0.0, 0.0], [0.0, 5.0, 0.0], [2.53188872, 2.16784954, 9.49026489], [5.0, 0.0, 0.0]]

for i, e in enumerate(mlist, 1):
    e.insert(0, i)

print(mlist)
    • 输出:**
[[1, 0.0, 0.0, 0.0], [2, 0.0, 5.0, 0.0], [3, 2.53188872, 2.16784954, 9.49026489], [4, 5.0, 0.0, 0.0]]
ffx8fchx

ffx8fchx3#

您可以尝试如下循环多个列表
代码:

ls = [[0.0, 0.0, 0.0], [0.0, 5.0, 0.0], [2.53188872, 2.16784954, 9.49026489], [5.0, 0.0, 0.0]]

[[idx, *val] for idx,val in enumerate(ls)]

输出:

[[0, 0.0, 0.0, 0.0],
 [1, 0.0, 5.0, 0.0],
 [2, 2.53188872, 2.16784954, 9.49026489],
 [3, 5.0, 0.0, 0.0]]
ego6inou

ego6inou4#

我不确定哪里出了问题。因为它对我来说很好用。如果你确定它不起作用,急需解决方案,试着恢复和附加,然后再次恢复。哈哈

l = [[0.0, 0.0, 0.0], [0.0, 5.0, 0.0], [2.53188872, 2.16784954, 9.49026489], [5.0, 0.0, 0.0]]
for i in range(len(l)):
    l[i] = l[i][::-1]
    l[i].append(i+1)
    l[i] = l[i][::-1]
print(l)

相关问题