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))
>>>