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