3 回答
TA贡献1848条经验 获得超2个赞
只是为了好玩,单线执行此操作:
>>> collections.Counter(iter(functools.partial(input, "Enter a name: "), ""))
Enter a name: Paul
Enter a name: Bill
Enter a name: John
Enter a name: Paul
Enter a name: Nick
Enter a name: Bill
Enter a name: Bill
Enter a name:
Counter({'Bill': 3, 'Paul': 2, 'Nick': 1, 'John': 1})
这可能不是在真实代码中执行此操作的方法。
TA贡献1824条经验 获得超5个赞
from collections import defaultdict
dic = defaultdict(int)
while True:
name = input ('Enter a name: ')
if name:
dic[name] += 1
else:
for k,v in sorted(dic.items(), key = lambda x: (x[1],x[0])):
print ("There is {} person named {}".format(v,k))
break
演示:
$ python3 so.py
Enter a name: Paul
Enter a name: Bill
Enter a name: John
Enter a name: Paul
Enter a name: Nick
Enter a name: Bill
Enter a name: Bill
Enter a name:
There is 1 person named John
There is 1 person named Nick
There is 2 person named Paul
There is 3 person named Bill
添加回答
举报