簡體   English   中英

在循環中訪問 Counter() 中的元素 python

[英]Accessing elements in Counter() in a loop python

我有這個:

num_values = 3
lst = [1, 2, 3, 1, 2, 2, 2, 2, 2, 2]
counters = Counter(lst)

Counter({2: 7, 1: 2, 3: 1}) 我需要做一個 for 循環並訪問我的 Counter 中的每個值。 我該怎么做呢? 例子:

for value in counters:
    scores = 0
    if counters[key] <= num_keys:
        scores += 1

我在這個和其他嘗試中也得到了錯誤的值

像這樣使用,它基本上是通過key:value pair of counters ,你使用key卻沒有得到它。 也使用num_values代替num_keys因為在您的代碼中沒有任何名為num_keys的內容,您可以使用該value而不是再次通過counters[key]訪問。 另一件事是您可能需要在循環之外聲明scores

scores = 0
for key, value in counters.items():
    # scores = 0
    if value <= num_values:
        scores += 1

collections.Counter()文檔:

Counter是用於計算可散列對象的dict子類。

因此,您可以使用dict.items()Counter上進行迭代,以將放在一起。 例如:

lst = [1, 2, 3, 1, 2, 2, 2, 2, 2, 2]

for i, j in Counter(lst).items():
    print(i, j)

# Prints:    
#   1 2
#   2 7
#   3 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM