Python 搜索列表的最高效方法
请耐心听我说,因为我对Python还很陌生。简单来说,我想找到一种最有效的方法来搜索一个多维列表。假设我有以下这个列表:
fruit = [
[banana, 6],
[apple, 5],
[banana, 9],
[apple, 10],
[pear, 2],
]
我希望我的函数能输出:苹果: 15,香蕉: 15,梨: 2。那有什么最有效的方法可以做到这一点呢?
5 个回答
1
使用 collections.defaultdict
来收集数据,并遍历这个列表。
accum = collections.defaultdict(int)
for e in fruit:
accum[e[0]] += e[1]
3
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。比如,有人可能在使用某个特定的功能时,发现它并没有按照预期工作。这时候,查看其他人的经验和解决方案就显得非常重要。
在StackOverflow上,很多人会分享他们遇到的问题和解决办法。这些讨论通常会包含一些代码示例,帮助大家更好地理解如何解决类似的问题。通过这些交流,我们可以学习到很多实用的技巧和方法,让我们的编程之路更加顺利。
总之,遇到问题时,不要害怕去寻求帮助,看看别人是怎么解决的,可能会给你带来意想不到的启发。
fruit = [['banana', 6], ['apple',5], ['banana',9],['apple',10],['pear',2]]
f = {}
def fruit_count():
for x in fruit:
if x[0] not in f.keys():
f.update({x[0]:x[1]})
else:
t = f.get(x[0])
t = t + x[1]
f.update({x[0]:t})
return f
f = {'apple': 15, 'banana': 15, 'pear': 2}
9
这根本不是在搜索...
你想要的是
import collections
def count(items):
data = collections.defaultdict(int)
for kind, count in items:
data[kind] += count
return data