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

时间:2018-08-08 12:51:37

标签: python python-3.x list-comprehension

我有一个包含年份[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 个答案:

答案 0 :(得分:3)

您可以使用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]]

答案 1 :(得分:1)

列表理解会创建一个 new 列表。如果要更改现有列表,请使用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)