首页 > 解决方案 > 仅打印最后 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}'

标签: pythondictionary

解决方案


因为您的两个姓氏以相同的字母开头:Stark,Snow。因此,作为字典键相互覆盖是唯一的。


推荐阅读