如何将一个有序列表中的每个对象插入到另一个嵌套列表中?

3
使用Python 3.7,我有两个列表,一个是嵌套的,一个不是,我想提取在一个列表中排序的字符串,并将每个字符串放入对应的有序嵌套列表中。一旦合并了嵌套列表,我计划将它们解包成一个表格。 我尝试过使用嵌套循环,遍历嵌套循环以隔离嵌套列表,然后再用第二个循环从常规(非嵌套)列表中提取每个字符串对象。 我尝试将字符串插入嵌套列表中,结果要么遍历字符串中的每个字符,要么将整个字符串列表添加到嵌套列表中。 我尝试了一些不同的带zip的列表推导式,但由于我是Python的新手,还没有掌握遍历列表的语法。 这是一个非常简单的尝试,希望能够解释我正在尝试完成的任务。
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = ['1-10', '10-20', '20-30']

for i in a:
  for j in b:
    i.insert(0, j)
print(a)
>>> [['1-10', 1, 2, 3], ['10-20', 4, 5, 6], ['20-30', 7, 8, 9]]
2个回答

2

在列表推导式中使用zip

最初的回答
[[y] + x for x, y in zip(a, b)]

Example:

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = ['1-10', '10-20', '20-30']

print([[y] + x for x, y in zip(a, b)])
# [['1-10', 1, 2, 3], ['10-20', 4, 5, 6], ['20-30', 7, 8, 9]]

这真的帮助我理解了如何使用理解进入嵌套,谢谢。有没有办法更新列表'a'而不是打印它的连接? - sovgott
1
@sovgott,你可以随时将其重新赋值给a而不是打印:a = [...] - Austin

1

或者使用解包:

print([[y, *x] for x, y in zip(a, b)])

输出:

[['1-10', 1, 2, 3], ['10-20', 4, 5, 6], ['20-30', 7, 8, 9]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接