代码之家  ›  专栏  ›  技术社区  ›  Sai Kumar

使用列表理解将列表元素附加到嵌套列表中

  •  1
  • Sai Kumar  · 技术社区  · 7 年前

    我有一张几年的清单 [1745,1742,1743,1730,1739] 和另一个嵌套列表 [['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration']]

    我尝试将第一个列表年份值附加到嵌套列表的最后一个位置,方法是 列表理解 .

    required output: 
    [['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration', 1745], 
     ['Bland', 'Theodorick', '1742-03-21', 'M', 'rep', 'VA', 'Pro-Administration', 1742]]
    

    我试过了,但我想不出来。谢谢您。

    2 回复  |  直到 7 年前
        1
  •  3
  •   blhsing    7 年前

    你可以用 zip 要对这两个列表进行配对:

    y = [1745,1742,1743,1730,1739]
    l = [['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration'],
     ['Bland', 'Theodorick', '1742-03-21', 'M', 'rep', 'VA', 'Pro-Administration']]
    print([s + [n] for s, n in zip(l, y)])
    

    此输出:

    [['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE', 'Anti-Administration', 1745], ['Bland', 'Theodorick', '1742-03-21', 'M', 'rep', 'VA', 'Pro-Administration', 1742]]
    
        2
  •  1
  •   Eugene Yarmash    7 年前

    列表理解创建 新的 名单。如果要改变现有列表,请使用 list.append() :

    lst1 = [1745,1742,1743,1730,1739]
    lst2 = [['Bassett', 'Richard', '1745-04-02', 'M', 'sen', 'DE',
             'Anti-Administration'],
            ['Bland', 'Theodorick', '1742-03-21', 'M', 'rep', 'VA',
             'Pro-Administration']]
    for year, data in zip(lst1, lst2):
        data.append(year)