2

我有一个大列表,包含一系列 id 和相关值,极短的版本如下所示:

large = [('550111', [(4, 5, 8), (6, -4, -6)]), ('222211', [(2, -4, 5), (1, 15, -4)])]

我想以某种方式5501将其导出到 excel 中A1,然后第一组值将在它下面B1B2&B3和下一组在C1, C2, 中C3,然后有一个空格然后2222in E1,第一组值相关F1, F2&中的它, ,F3中的第二个。即在Excel中(每个值都有自己的Excel矩形事物),例如:G1G2G3

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)  

但是我完全是胡说八道,因为我正在努力解决如何处理列表中的 the[]和 the ()。如果有人能阐明我如何处理数据以便我可以以所需的方式导出数据,我将不胜感激。谢谢你。

非常感谢帮助。

编辑

新的所需形式,包括。绝对最大值

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 
4

1 回答 1

1

也许这样的事情会有所帮助?

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,这不会很好地工作。

于 2012-08-10T11:32:41.480 回答