有一个作为csv-file的数据集,其中包含一些数据表。
我想用相同的数字选出分数。
例如,我有一个列表
a = [1,1,2,2,3,3,4,4,4,5,5,5,5,6]我想要一个循环,它用相同的数字写text-files
file_1.txt包含1,1
file_2.txt包含2,2
file_3.txt包含3,3
file_4.txt包含4,4,4
file_5.txt包含5,5,5,5
file_6.txt包含6
我仍然没有真正的结果,因为到目前为止,一切都是错误的。
发布于 2019-01-07 17:26:15
一个更干净的方法是使用itertools.groupby和str.join
from itertools import groupby
for num, group in groupby(a):
filename = "file_%d.txt"%num
with open(filename, 'w') as f:
f.write(",".join(map(str, group)) + "\n")另一个重要的问题是,您 statement when reading and writing to files。
使用groupby假定数据已经排序。另一种方法是使用collections.Counter
from collections import Counter
for num, count in Counter(a).items():
filename = "file_%d.txt"%num
with open(filename, 'w') as f:
f.write(",".join([str(num)]*count) + "\n")发布于 2019-01-07 13:10:06
如果我的理解是正确的,这应该是可行的:
for x in set(a):
text_file = open("file_"+str(x)+".txt", "w")
text_file.write(((str(x)+',')*a.count(x))[:-1])
text_file.close()第三行中的[:-1]将删除额外的逗号;)
https://stackoverflow.com/questions/54074715
复制相似问题