python - 将列表元素添加到列表列表的末尾

标签 python

我有一个值列表,我想将其元素添加到列表列表中每个列表的末尾。是否有 Pythonic 或有效的方法来解决这个问题?

例如,给定:

x = [['a','b','c'],['d','e','f'],['g','h','i']]
y = [1,2,3]

我希望: [['a', 'b', 'c', 1], ['d', 'e', 'f', 2], ['g', 'h', 'i', 3 ]]

我试过:

list(zip(x,y))

但是,这会产生:

[(['a', 'b', 'c'], 1), (['d', 'e', 'f'], 2), (['g', 'h', 'i'], 3)]

我可以用这样一个低效的循环来解决它:

new_data = []
for i,x in enumerate(x):
    x.append(y[i])
    new_data.append(x)

print(new_data)
[['a', 'b', 'c', 1], ['d', 'e', 'f', 2], ['g', 'h', 'i', 3]]

最佳答案

要构建一个新列表,我可能会这样做:

>>> x = [['a','b','c'],['d','e','f'],['g','h','i']]
>>> y = [1,2,3]
>>> [a + [b] for a, b in zip(x, y)]
[['a', 'b', 'c', 1], ['d', 'e', 'f', 2], ['g', 'h', 'i', 3]]

如果要修改x到位,您不需要使用 enumerate , 只需遍历 zipappend y 元素到 x 元素:

>>> for a, b in zip(x, y):
...     a.append(b)
...
>>> x
[['a', 'b', 'c', 1], ['d', 'e', 'f', 2], ['g', 'h', 'i', 3]]

关于python - 将列表元素添加到列表列表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71684140/

相关文章:

python - 找出列表中两个相邻数字相乘的最大数字

python - 将单行 DataFrame 对象操作为 6x6 DataFrame

python - pandas python 替换/删除 read_csv 中的连字符

python - 使用 xlib 在屏幕顶部绘制

python - 在python中异步读取和处理图像

python - Try语句语法

python - 如何在Python中调试subprocess.call()?

python - 在 Python 中检测两个图像在视觉上是否相同的快速有效方法

python - 请求 : Explanation of the . 文本格式

Python:将符号移动到字符串的开头?