-01169-00134079-000...
我想对它们进行排序并将它们存储到文件中.
我读取文件将它们存储在列表中,对列表进行排序,然后将列表保存到文件中.问题是它从第二个-x开始.
for line in file: temp_buffer = line.split() for i,word in enumerate(temp_buffer): if "-" not in word: if word in index_dict: l1.append(word) else: l1.append(function(word)) else: l1.append(word) l1.sort() print(l1,file=testfile) del l1 l1 = []
所以第一个循环它转到else语句并且只存储第一个-0而没有-0和-00之间的单词.我该怎么解决这个问题?
我想输出是这样的:
-01916-00013479-000....解决方法 您可以使用itertools.groupby将数据“划分”为以 – 开头的行之间的组.从哪里开始 – 写出线,否则,写出排序的行,例如:
from itertools import groupbywith open('input') as fin,open('output','w') as fout: for k,g in groupby(fin,lambda L: L.startswith('-')): if k: fout.writelines(g) else: fout.writelines(sorted(g,key=int))总结
以上是内存溢出为你收集整理的文件读取和python中的for循环全部内容,希望文章能够帮你解决文件读取和python中的for循环所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)