gpt4 book ai didi

python - 打开元素包装并添加新元素

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:16 25 4
gpt4 key购买 nike

我需要创建一个新列表来合并两个列表,其中一个是列表列表。这是我需要做的:

a = [[2, 1, 4, 5, 0], [3, 6, 5, 4, 8], [2, 1, 4, 7, 8], [3, 4, 9, 5, 6], [7, 5, 2, 1, 1]]
b = [2, 3, 5, 0, 8]
c = []

for indx, item in enumerate(a):
c.append([item, b[indx]])

这生成 c 为:

[[[2, 1, 4, 5, 0], 2], [[3, 6, 5, 4, 8], 3], [[2, 1, 4, 7, 8], 5], [[3, 4, 9, 5, 6], 0], [[7, 5, 2, 1, 1], 8]]

但我需要它看起来像:

[[2, 1, 4, 5, 0, 2], [3, 6, 5, 4, 8, 3], [2, 1, 4, 7, 8, 5], [3, 4, 9, 5, 6, 0], [7, 5, 2, 1, 1], 8]

我试过在 item 前面添加一个 * 来解压元素,但这不起作用。

最佳答案

只需连接项目以从 itemb 中的元素创建一个列表:

for indx, item in enumerate(a):
c.append(item + [b[indx]])

您可以使用 zip() function 简化循环:

for a_item, b_item in zip(a, b):
c.append(a_item + [b_item])

然后将 c 的整个定义移动到列表推导中:

c = [a_item + [b_item] for a_item, b_item in zip(a, b)]

演示:

>>> a = [[2, 1, 4, 5, 0], [3, 6, 5, 4, 8], [2, 1, 4, 7, 8], [3, 4, 9, 5, 6], [7, 5, 2, 1, 1]]
>>> b = [2, 3, 5, 0, 8]
>>> [a_item + [b_item] for a_item, b_item in zip(a, b)]
[[2, 1, 4, 5, 0, 2], [3, 6, 5, 4, 8, 3], [2, 1, 4, 7, 8, 5], [3, 4, 9, 5, 6, 0], [7, 5, 2, 1, 1, 8]]

关于python - 打开元素包装并添加新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17794882/

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