设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin
打印 上一主题 下一主题

【每周一坑】3道题

[复制链接]

0

主题

1

好友

21

积分

新手上路

Rank: 1

楼主
发表于 2021-7-6 17:26:38 |显示全部楼层
代码如下:
a=input('输入一段字,我能猜出这串字符里面每个字符出现的次数\n')
d={}
for b in a:
    d[b]=(a.count(b))
d_order=sorted(d.items(),key=lambda x:x[1],reverse=True)#排序
print(d_order)

运行结果如下:
[('s', 4), ('i', 3), (' ', 3), ('h', 2), ('t', 2), ('o', 2), ('r', 2), ('y', 2)]

但是怎么运行结果输出成如题的格式,我试了以下两种方式:
方式一:for key in d_order:
    print("{}:{}".format(key,d_order[key]))

报错如下:Traceback (most recent call last):
  File "C:/Users/duoduo520/AppData/Local/Programs/Python/Python39/ChacreterNumber3.py", line 9, in <module>
    print("{}:{}".format(key,d_order[key]))
TypeError: list indices must be integers or slices, not tuple
方式二:
for key in d_order:
     print(f'"{key}":{d_order[key]}')
报错如下:
Traceback (most recent call last):
  File "C:/Users/duoduo520/AppData/Local/Programs/Python/Python39/ChacreterNumber3.py", line 9, in <module>
    print(f'"{key}":{d_order[key]}')
TypeError: list indices must be integers or slices, not tuple

看了好长时间还是没明白,怎么修改,请crossin老师指导,谢谢!
回复

使用道具 举报

0

主题

1

好友

21

积分

新手上路

Rank: 1

沙发
发表于 2021-7-7 12:42:17 |显示全部楼层
crossin先生 发表于 2021-7-6 19:44
你代码中的d_order 是个列表,列表里面元素是元组。但是你的代码在把它当字典来处理,所以不对 ...

谢谢crossin老师,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-2 18:33 , Processed in 0.016043 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部