Python 如何单步遍历列表并累加一个整数值,告诉基于它的元素的次数';在名单中的位置被看到了

Python 如何单步遍历列表并累加一个整数值,告诉基于它的元素的次数';在名单中的位置被看到了,python,list,for-loop,counter,Python,List,For Loop,Counter,我想看看一个元素在列表中出现了多少次 例如: list = [125,130,140,123,125,140,130,140] 我想计算出位置0(这里是125)的元素在列表中出现了多少次,并用计数器累积值。对于位置0的元素,我希望得到int,2 您可以使用计数器: from collections import Counter my_list = [125,130,140,123,125,140,130,140] Counter(my_list) 输出: Counter({140: 3, 1

我想看看一个元素在列表中出现了多少次

例如:

list = [125,130,140,123,125,140,130,140]

我想计算出位置0(这里是125)的元素在列表中出现了多少次,并用计数器累积值。对于位置0的元素,我希望得到int,2

您可以使用
计数器

from collections import Counter
my_list = [125,130,140,123,125,140,130,140]
Counter(my_list)
输出:

Counter({140: 3, 130: 2, 125: 2, 123: 1})

您可以使用
计数器

from collections import Counter
my_list = [125,130,140,123,125,140,130,140]
Counter(my_list)
输出:

Counter({140: 3, 130: 2, 125: 2, 123: 1})

实际上,不需要复杂的机械:

>>> l = [1, 2, 3, 2]
>>> l.count(l[1])
2

实际上,不需要复杂的机械:

>>> l = [1, 2, 3, 2]
>>> l.count(l[1])
2

使用列表理解和
len

count = len([l for l in list if l == list[n]])

其中
n
是您正在计算的项目的索引。

使用列表理解和
len

count = len([l for l in list if l == list[n]])

其中,
n
是您正在计算的项目的索引。

您可以将它们存储在带有dict理解功能的词典中(其工作原理与列表理解功能完全相同):


此外,将你的名单命名为“名单”也是一种不好的做法。这将与Python中内置的list函数冲突。

您可以将它们存储在具有dict comprehension(其工作原理与list comprehension完全相同)的字典中:

def foo(pos, values):
    counter = 0
    element_to_find = values[pos]
    for element in values:
        if element == element_to_find:
            counter += 1
    return counter

此外,将你的名单命名为“名单”也是一种不好的做法。这将与Python中内置的list函数冲突。

当所有OP需要计算一个项目时,与list.count(以C速度运行)相比,它的效率如何?@AshwiniChaudhary counter在计算多个元素时更有效sop从未要求计算所有项目。@AshwiniChaudhary我刚刚给出了想法,对于这个问题,你能做到更多是一个坏主意,而且效率也很低。当所有OP需要的都是一个项目的计数时,与
list.count
(以C速度运行)相比,这个效率如何?@AshwiniChaudhary counter在计算多个元素时效率更高sop从未要求计算所有项目。@AshwiniChaudhary我刚刚给出了一个想法,这个问题的答案是错误的,而且效率也很低。
your\u list.count(your\u list[0])
有什么问题吗?
your\u list.count(your\u list[0])
有什么问题吗?
def foo(pos, values):
    counter = 0
    element_to_find = values[pos]
    for element in values:
        if element == element_to_find:
            counter += 1
    return counter