我有一个很大的列表,包含一系列 id 和相关值,极短的版本如下所示:
large = [('550111', [(4, 5, 8), (6, -4, -6)]), ('222211', [(2, -4, 5), (1, 15, -4)])]
我想将其导出到 excel 中,5501 将位于 A1 中,然后第一组值将位于 B1< 中, B2 & B3 和下一组在 C1, C2, C3,然后在 E1 中有一个空格,然后是 2222,在 F1,F2< 中与它相关的第一组值 & F3,G1、G2、G3 中的第二个。即在 Excel 中(每个值都有自己的 Excel 矩形),如:
550111
4 5 8
6 -4 -6
'space here (dont know how to add one)'
222211
2 -4 5
1 15 -4
'SPACE HERE AGAIN'
我试过以下方法:
writer_jobby = csv.writer(open('poo5.csv', 'wb'), delimiter=',')
for i in large:
if i == '[':
i.replace()
if i == ']':
i.replace()
if i == '(':
i.replace()
if i == ')':
i.replace()
else:
writer_jobby.writerow(i)
但我得到了绝对的废话,因为我正在努力解决如何处理列表中的 [] 和 () 的问题。如果有人可以阐明我如何处理数据,以便我可以以所需的方式导出数据,我将不胜感激。谢谢。
非常感谢帮助。
编辑
新的所需形式包括。 绝对最大值:
550111
4,5,8
6,-4,-6
'space here'
'Max:'
6, 5, 8
'space here'
222211
2,-4,5
1,15,-4
'space here'
'Max:'
2, 15, 5
'space here'
1, 2, 3, ........, 8904
请您参考如下方法:
也许这样的事情会有帮助?
import csv
large = [('5501', [(4, 5, 8), (6, -4, -6)]), ('2222', [(2, -4, 5), (1, 15, -4)])]
with open("out1.csv", "wb") as fp: # open the file, call it fp, and autoclose it
writer = csv.writer(fp, delimiter=",")
for entry in large:
writer.writerow([entry[0]]) # one-element list
for line in entry[1]: # loop over each tuple in the second element
writer.writerow(line)
writer.writerow([]) # write an empty row
这产生
localhost-2:coding $ cat out1.csv
5501
4,5,8
6,-4,-6
2222
2,-4,5
1,15,-4
csv 模块通常用于从元素写入行。我不知道 final 是什么,但看起来你正在尝试用 large 制成的字符串做一些事情,这不会很好地工作.
