bil*_*ill 3 python for-loop list
我有这个文件:
-0
1
16
9
-00
1
3
4
0
7
9
-000
...
Run Code Online (Sandbox Code Playgroud)
我想对它们进行排序并将它们存储到文件中.
我读取文件将它们存储在列表中,对列表进行排序,然后将列表保存到文件中.问题是它从第二个-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 = []
Run Code Online (Sandbox Code Playgroud)
所以第一个循环它转到else语句并且只存储第一个-0而没有-0和-00之间的单词.我该怎么解决这个问题?我想输出是这样的:
-0
1
9
16
-00
0
1
3
4
7
9
-000
....
Run Code Online (Sandbox Code Playgroud)
您可以使用itertools.groupby"分区"将数据分组到以行开头的行之间-.在哪里开始-写出行,否则,写出排序的行,例如:
from itertools import groupby
with 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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |