Python 搜索列表的最高效方法

1 投票
5 回答
1075 浏览
提问于 2025-04-16 08:22

请耐心听我说,因为我对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

撰写回答