【问题标题】:Add values from list into nested lists将列表中的值添加到嵌套列表中
【发布时间】:2021-01-23 11:26:04
【问题描述】:

我是初学者,我想问一下,如何将列表年龄中的值添加到列表 n_list 中。

n_lst = [['Peter', 'Brown'], ['Thomas', 'Black'], ['Andy', 'Green']]
age = [33, 35, 28]

我需要得到什么:

[['Peter', 'Brown', 33], ['Thomas', 'Black', 35], ['Andy', 'Green', 28]]

非常感谢您的帮助!

【问题讨论】:

  • [[*i, j] for i,j in zip(n_lst, age)]
  • 您的意思是要更改n_lst 还是新列表?

标签: python append zip nested-lists extend


【解决方案1】:

这里有 3 个简单的选项(还有很多更复杂的选项)

  1. 对于嵌套列表中的每个列表,附加年龄列表中具有相同索引的项目:

    for index, subList in enumerate(n_lst):  
        subList.append(age[index])
    

对于列表中的每个项目, enumerate 会为您提供项目的数字位置和项目本身。我们可以通过它轻松地挑选出相应的年龄。

  1. 获取与年龄列表中每个项目的索引对应的数字,并使用它来标识我们要附加年龄的子列表。听起来一样,结果也一样,但在我看来总是有点混乱:

     for i in range(len(age)):  
         n_lst[i].append(age[i])
    
  2. 创建一个包含整理信息的新列表:

      lst = [subList + [year] for subList, year in zip(lst, age)]
    

zip() 从传递给它的对象中返回一个元组迭代器。在这一点上,我会尽量避免担心这意味着什么。

【讨论】:

    【解决方案2】:
    lst = [['Peter', 'Brown'], ['Thomas', 'Black'], ['Andy', 'Green']] 
    age = [33, 35, 28]
    
    new_lst = [p + [a] for p, a in zip(lst, age)]
    

    就地修改:

    for p, a in zip(lst, age):
      p.append(a)
    
    print(lst)
    

    【讨论】:

    • 就地做这件事怎么样,就像问的问题一样?
    【解决方案3】:
    n_lst = [['Peter', 'Brown'], ['Thomas', 'Black'], ['Andy', 'Green']]
    age = [33, 35, 28]
    
    for i in range(len(age)):
            n_lst[i].append(age[i])
    
    
    

    【讨论】:

      猜你喜欢
      • 2021-01-15
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      相关资源
      最近更新 更多