如何将数组集合写入 python 中的 csv 文件?

How do I write a collection of arrays to csv file in python?

我在 python 中有一个 Counter 系列,看起来像

C = [
  ('a', [10, 15]),
  ('b', [20, 23]),
  ('c', [11, 55])
  ...
]

我想将这个集合写入一个 csv 分隔文件,看起来像

letter    property1    property2
a         10           15
b         20           23
c         11           55

我查看了堆栈溢出,大多数人都试图一次只将字典输出到 csv 一行。这可能不适用于我。我应该如何处理我的案例?

您可以创建一个新的列表列表,将列表的第二个元素连接到包含列表第一个元素的列表。然后你可以只使用 csv.writer and writerows() 方法将这些列表写入文件。

import csv
D = [ [x[0]] + x[1] for x in C ]
with open(filename, 'w') as f:
    writer = csv.writer(f)
    writer.writerows(D)

D = [ [x[0]] + x[1] for x in C ] 可以用一些解释。

[x[0]]C 的元素的第一个元素放入其自己的列表中,然后 + x[1] 获取列表的第二个元素并将其添加到列表的末尾我们刚刚创建。因此,对于示例中的第一个元素 ('a', [10, 15])[x[0]] 是包含字符串 'a'['a'] 的列表。 x[1] 是列表 [10, 15]+ 运算符连接列表。因此,如果我们连接 ['a'] + [10, 15],我们会得到 ['a', 10, 15],它将按照您的要求写入 csv。

import re
c = [
  ('a', [10, 15]),
  ('b', [20, 23]),
  ('c', [11, 55])
]

regex = r"\('(\w)', \[(\d+), (\d+)\]\)"
for x in re.findall(regex ,str(c)):
    print ','.join(x)