如果子列表是4项,请保留,如果列表是3项,则将“Null”插入子列表的第三位。带有条件“if”的for循环会这样做,但它很慢。有没有更快的方法?
lst = [['4','4','4','4'],['3','3','3'],['1','42','','4'],['1','2','3']]
Desired_List = [['4','4','4','4'],['3','3','Null','3'],['1','42','5','4'],['1','2','Null','3']]
我所拥有的,由于某种原因我无法理解,这是行不通的:
Desired_List = []
for sublist in lst:
if len(sublist) == 3:
Desired_List.extend(sublist.insert(3,"Null"))
else:
Desired_List.extend(sublist)
这真的很慢,因为我这样做是为了一个大的列表。有没有更快的方法?
答案 0 :(得分:1)
如果您已经更改lst
,请考虑使用它而不是创建新列表Desired_List
,只需执行以下操作:
>>> for sublist in lst:
... if len(sublist) == 3:
... sublist.insert(2,"Null")
...
>>> lst
[['4', '4', '4', '4'], ['3', '3', 'Null', '3'], ['1', '42', '', '4'], ['1', '2', 'Null', '3']]