fo = open("PY202.txt","w")
names=input("请输入各个同学行业名称,行业名称之间用空格间隔(回车结束输入):")
names= names.split()
d = {}
for name in names:
d[name]=d.get(name,0) +1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 按照数量排序
for k in ls:
fo.write("{}:{}\n".format(k[0],k[1]))
fo.close()
易错点:
1.切片函数可以把字符串变成列表,但是不改变原来字符串,需要给原字符串重新赋值
>>> s="沈小刚 沈阳 沈从文 李白"
>>> s.split()
['沈小刚', '沈阳', '沈从文', '李白']
>>> s
'沈小刚 沈阳 沈从文 李白'
>>> s=s.split()
>>> s
['沈小刚', '沈阳', '沈从文', '李白']
2.只有字典可以统计
d.get(key,default) 键存在返回相应的值,否则返回默认值default)
但是d[key] 不能返回不存在的键对应的值
>>> d={"a":3,"b":5,"f":8}
>>> d["a"]
3
>>> d["h"]
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
d["h"]
KeyError: 'h'
>>> d.get("h",0)
0
>>>
列表:
>>> list=[("a",5),("b",7),("h",6)]
>>> list[0][1]
5
>>> list[0],list[1]
(('a', 5), ('b', 7))
>>>