Sort.py 内容如下:
# -*- coding: utf-8 -*-
import sys #导入sys模块def collect(file):
''' 改变 key-value对为value-key对
@param file: 文件对象
@return: 一个dict包含value-key对
'''
result = {}
for line in file.readlines(): #依次读取每行
left,right = line.split() #将一行以空格分割为左右两部分
if result.has_key(right): #判断是否已经含有right值对应的key
result[right].append(left) #若有,直接添加到result[right]的值列表
else:
result[right] = [left] #没有,则新建result[right]的值列表
return result
if __name__ == "__main__":
if len(sys.argv) == 1: #判断参数个数
print 'usage:\n\tpython cdays-3-exercise-2.py cdays-3-test.txt'
else:
result = collect(open(sys.argv[1], 'r')) #调用collect函式,返回结果
for (right,lefts) in result.items(): #输出结果
print "%d '%s'\t=>\t%s" % (len(lefts), right, lefts)
test.txt 内容如下:
1 key3
2 key2
3 key1
7 key3
8 key2
10 key1
14 key2
19 key4
20 key1
30 key3
输入命令:sort.py test.txt
为何只显示如下结果:
1 'key3' => ['1']