我有一个非常大的文件排序在一个字段上.我想将这些数据和组线读在一起,而不是在字段中包含相同的值.例如:
我有一个包含两个字段的文件:
12 fish
50 fish
1 turtle
11 dog
34 dog
12 dog
Run Code Online (Sandbox Code Playgroud)
我正在寻找使用迭代器或生成器的解决方案.我不可能将所有数据读入内存,只能将一个组(内部列表)作为时间读取.我试图使用groupby,但无法弄清楚如何根据字段中的相同值进行分组.
我如何产品列表如下:
[[12, fish], [50, fish]]
[[1, turtle]]
[[11, dog], [34, dog] [12, dog]]
Run Code Online (Sandbox Code Playgroud)
from itertools import groupby
from operator import itemgetter
with open('somefile') as fin:
lines = (line.split() for line in fin)
for key, items in groupby(lines, itemgetter(1)):
print list(items)
[['12', 'fish'], ['50', 'fish']]
[['1', 'turtle']]
[['11', 'dog'], ['34', 'dog'], ['12', 'dog']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |