python - 仅打印最后 2 个键的函数:字典的值对
问题描述
我正在创建一个将字典作为参数的函数。字典由一个键组成,键是姓,值是名字的列表。
该函数应返回一个新字典,其中每个键是参数中键的第一个字母,值是参数值中的项目数
例子
names = {"Stark": ["Ned", "Robb", "Sansa"], "Snow" : ["Jon"], "Lannister": ["Jaime", "Cersei", "Tywin"]}
{"S" : 3, "S" : 1, "L": 3}
我编写的函数只打印 '{'S': 1, 'L': 3}' 最后 2 个键值对,但我想要 {'S': 3, 'S': 1, 'L': 3} 打印
def count_first_letter(names):
beginning = []
last = []
for element, number in names.items():
amount = len(number)
first = element[0]
last.append(amount)
beginning.append(first)
new = {key:value for key, value in zip(beginning, last)}
return new
print(count_first_letter({"Stark": ["Ned", "Robb", "Sansa"], "Snow": ["Jon"], "Lannister": ["Jaime", "Cersei", "Tywin"]}))
'{'S': 1, 'L': 3}'
解决方案
因为您的两个姓氏以相同的字母开头:Stark,Snow。因此,作为字典键相互覆盖是唯一的。
推荐阅读
- c# - 我们是否在 Azure 时间触发功能和活动功能中的重试选项中遇到并发问题?
- session - 模拟 getSession() 条件查询
- powershell - 如果找不到用户,如何让 Get-ADUser 显示错误?
- python - 无法在 PyCharm 中使用 Python 3.8 版本的解释器
- java - 如何指示我的程序在 Java 中显示一次错误消息
- opencl - 我应该如何查看全局和本地工作规模
- javascript - React Native Firebase Analytics 获取用户国家
- bash - 如何比较字段 1 和字段 5,其中字段 1 和字段 5 是数字
- java - 忽略:java.util.zip.ZipException:无效的 CEN 标头(重复条目)
- javascript - 通过单击按钮将 textarea 内容更改回其起始形式