问题详情
ls = list(dc.items()) ls.sort(key=lambda x:x[1],reverse=True)必须是dc.items()吗,直接ls = list(dc)
回答
必须是dc.items(),不能直接用list(dc)。
1. 为什么list(dc)不行?
当你直接对字典使用
list()时,Python 默认只提取字典的键(Key)。- 代码:
ls = list(dc) - 结果:
ls变成了一个只包含键的列表(字符串或数字列表)。 - 后果:
- 你丢失了“值”的信息,没法按值排序。
.items()方法会将字典转换为一个包含(键, 值) 元组的列表。- 代码:
ls = list(dc.items()) - 结果:
ls变成了[('apple', 10), ('banana', 5), ...]。 -
其实你甚至不需要显式地写
list()。因为sorted()函数和list.sort()方法都可以直接接受字典的视图对象。sorted_dc = sorted(dc.items(), key=lambda x: x[1], reverse=True)优势:
- 保留了完整的键值对关系。
- 每个元素都是一个元组
(key, value)。 -
x[1]正好对应元组里的“值”(即 10, 5, 8),这样才能实现按值排序。
版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.stntk.com/question/2707.html
还没有评论呢,快来抢沙发~