python - 如何打印列表中元素数量最多的键?
问题描述
我想编写一个函数,该函数将返回字典中键的名称,以使该键在其列表中具有最多的元素。
我设法编写了一个函数来计算我的动物列表中的值的数量。我试图寻找一种方法来实现这一点,但是
animals = { 'a': ['horse'], 'b': ['baboon'], 'c': ['giraffe','donkey']}
def how_many(dic):
count = 0
for x in animals:
if isinstance(animals[x], list):
count += len(animals[x])
print(count)
def biggest(dic):
p = []
for i in range(len(animals)):
x = how_many(dic[i])
p.append(x)
#stuck here
最大的(dic)函数应该打印 C。
解决方案
您可以为key
内置max
函数提供一个参数以轻松执行此操作:
animals = { 'a': ['horse'], 'b': ['baboon'], 'c': ['giraffe','donkey']}
print(max(animals.keys(), key=lambda k:len(animals[k])))
# prints 'c'
推荐阅读
- java - Elasticsearch 解析日期字段格式失败
- embedded - 计算英特尔十六进制扩展线性地址记录的校验和
- android - java.lang.IllegalStateException:无法在后台线程上调用观察
- python - 使用自定义模型和委托的自定义 ComboBox
- amazon-web-services - AWS CloudFront 2 个域在 1 个存储桶中的 2 个路径上具有 2 个 S3 源
- github - 使用 Github 忽略特定类型的更改
- python - numpy 数组使用 reshape 进行切片
- sql - 根据不在另一个表中的列对有效地创建行
- javascript - 优化通过长字符串工作的函数
- python - pySide2 QThread 多线程无法按预期工作