gpt4 book ai didi

python - 用字典计算列表变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:48 29 4
gpt4 key购买 nike

我必须编写一个程序来计算给定列表中水果的数量。

我试过 for 循环但没有成功。我也尝试过 Counter,但这会删除第二个 'banana' 并且只能识别一个。

c = { 'banana': 'fruit', 'apple': 'fruit', 'pizza': 'fastfood', 'fries': 'fastfood' }
v = [ 'fries', 'banana', 'banana', 'apple', 'pizza' ]

r = len([v for v in c if c.items() == 'fruit' in c.value()])

print(r)

我预计这会给我水果的数量,但我得到的输出是 0

最佳答案

试试看:

r = sum(1 for val in v if c[val] == 'fruit')

或者,就像@jpp 建议的那样(短一点):

r = sum(c[val] == 'fruit' for val in v)

或者,如果您需要速度,例如@Patrick Artner:

ctag = { k: v for k, v in c.items() if v == 'fruit' }
r = sum(1 for val in v if val in ctag)

说明:每次访问值和比较都非常昂贵。创建一个所有键都是水果的新字典然后简单地忽略值会更便宜。这比使用集合要好,因为集合是使用搜索复杂度为 O(logN) 的平衡树实现的,而字典是使用搜索复杂度为 O(1) 的 HashMap 实现的,只要映射中的项目数量不超出内部容量多少...

关于python - 用字典计算列表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54185885/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com