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))
>>> 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值