因此,根据list2
最大索引,用空值初始化您的列表。然后,使用zip
根据list1,list2
索引/值元组填充它,就像您在尝试中那样。
list1 = ['111', '333', '555', '777', '8888']
list2 = [1, 5, 56, 44, 2]
rows_to_write = [[""] for _ in range(max(list2))]
for i,v in zip(list2,list1):
rows_to_write[i-1][0] = v
此时rows_to_write
值得:
[['111'], ['8888'], [''], [''], ['333'], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], ['777'], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], [''], ['555']]
然后写在1个指令中的行(不附加)
with open('hh1.csv', 'w',newline='') as f: # python 3
csv.writer(f).writerows(rows_to_write)
这将创建一个单行 “疏” csv文件。 (open('hh1.csv', 'wb') as f
for python 2)
你想在中间行写什么? –
@ Jean-FrançoisFabre它将是空的,但我需要在循环中编写它,并且数字可能不是为了 –