对于矩阵如下
A 20 200
A 10 150
B 60 200
B 80 300
C 90 400
C 30 300
我的目的是:对于每个类别(在第1栏中标记为A,B,C ......),我想找到最小数量和最大数量(作为最大范围)。所以期待看到:
A 10 200
B 60 300
C 30 400
那我怎么能用Python?
答案 0 :(得分:1)
我会从:
开始maxs, mins = {}, {}
for line in fd:
category, small, big = line.split()
if category not in maxs or big > maxs[category]:
maxs[category] = big
if category not in mins or small < mins[category]:
mins[category] = small
# final printings
for category in maxs:
print(category, mins[category], maxs[category], sep='\t')
返回dicts,可以使用{c: (mins[c], maxs[c]) for c in maxs}
合并。
此代码假定可迭代的行名为fd
。可以是一个打开的文件,包含原始文本中的矩阵。
如果订单很重要,一个好的解决方案是使用OrderedDict代替mins
和maxs
的常规字典。