首页 > 解决方案 > 在 python 列表中插入 0

问题描述

我有如下列表

list1=[['10','20','30','40','50','60','70','80','90','100'],['10','40'],['10','20','12'],...]
list2=[['2001','2002','2003','2004','2005','2006','2007','2008','2009','2010'],['2004','2005'],['2001','2002','2004'],...]

我想在 list2 中不存在年份的地方添加 0

list1_modified=[['10','20','30','40','50','60','70','80','90','100'],['0','0','0','10','40','0','0','0','0','0'],['10','20','0','12','0','0','0','0','0','0'],....]

我怎么能根据第二个列表修改我的第一个列表。

for val1,val2 in zip(list1,list2):
    if len(val1)!=len(val2):
       for sub1,sub2 in zip(val1,val2):
           sub1='0'



标签: pythonpython-3.xlistpython-2.7

解决方案


这是你想要的吗?

list1 = [['10', '20', '30', '40', '50', '60', '70', '80', '90', '100'], ['10', '40'], ['10', '20', '12']]
list2 = [['2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010'], ['2004', '2005'],
         ['2001', '2002', '2004']]

list1_modified = []
for l1, l2 in zip(list1, list2):
    l1 = iter(l1)
    sub_list = [next(l1) if str(index+2001) in l2 else '0' for index in range(len(list1[0]))]
    list1_modified.append(sub_list)

print(list1_modified)

打印:

[['10', '20', '30', '40', '50', '60', '70', '80', '90', '100'], ['0', '0', '0', '10', '40', '0', '0', '0', '0', '0'], ['10', '20', '0', '12', '0', '0', '0', '0', '0', '0']]

推荐阅读