python 練習四錯題

在這裏插入圖片描述

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))
>>> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章