【问题标题】:How can I insert each object from one ordered list into into another nested list?如何将一个有序列表中的每个对象插入到另一个嵌套列表中?
【发布时间】:2023-03-12 14:32:02
【问题描述】:

使用 Python 3.7,我有两个列表,一个是嵌套的,一个不是,我想提取在一个列表中排序的字符串,并将每个字符串放入相应的有序嵌套列表中。嵌套列表合并后,我计划将它们解压缩到一个表中。

我尝试执行一个嵌套的 for 循环,在该循环中迭代嵌套循环以隔离嵌套列表,然后再进行第二个 for 循环以从其常规(未嵌套)列表中提取每个字符串对象。我将字符串插入嵌套列表的尝试最终要么遍历字符串中的每个字符,要么将整个字符串列表添加到嵌套列表中。我用 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]]

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    在列表理解中使用zip

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

    示例

    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,您可以随时将其分配回a,而不是打印:a = [...]
    【解决方案2】:

    或者使用解包:

    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]]
    

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2016-02-11
      • 1970-01-01
      • 2019-09-29
      • 1970-01-01
      • 2018-05-18
      • 2015-03-21
      • 1970-01-01
      • 2011-08-13
      相关资源
      最近更新 更多