簡體   English   中英

計算 Python 字典中的特定值

[英]Counting specific values within Python Dictionary

試圖計算特定值出現在 Python 字典中的次數,但似乎無法讓它工作。

我的字典是這樣設置的:

count = ({'John': 2, 'Sam': 1, 'Brian': 2, 'Brian': 2, 'Brian': 1, 'Sam': 2, 'John': 2, 'Henry': 2,'布賴恩':1})

我要得到結果,如果用戶輸入“Brian”,結果將是:

4

或者,如果用戶輸入“Sam”,結果將是:

2

number = 0
userInput = input("Please enter a player:  ")
for k, v in count.items():
        if k == userInput:
            number =+ 1
print(number)

有沒有更好的方法來做到這一點,因為目前如果輸入“山姆”,它只會輸出“1”? 謝謝 !

字典只能有一個鍵。 當你創建count = ({'John': 2, 'Sam': 1, 'Brian': 2, 'Brian': 2, 'Brian': 1, 'Sam': 2, 'John': 2, 'Henry': 2, 'Brian': 1}) ,Python 存儲{'John': 2, 'Brian': 1, 'Sam': 2, 'Henry': 2} (值可以改變,因為沒有規則為多次出現的鍵保留什么值)。 參見字典的 Python 文檔

因此計數將始終為 1。

如果您想多次使用一個鍵,請不要使用字典,而是使用對列表(大小為 2 的元組)。

由於 python 字典必須有唯一的鍵,所以計算一個鍵出現的次數在這里不起作用。 您可以閱讀文檔以獲取有關此數據結構的更全面的詳細信息。

此外,您可以在字典中存儲每個名稱的計數:

counts = {'Brian': 4, 'John': 2, 'Sam': 2, 'Henry': 1}

然后調用每個鍵獲取計數值:

>>> counts['Brian']
4
>>> counts['Sam']
2

您也可以將名稱保留為列表,並調用collections.Counter來計算名稱出現的次數:

>>> from collections import Counter
>>> names = ['John', 'Sam', 'Brian', 'Brian', 'Brian', 'Sam', 'John', 'Henry', 'Brian']
>>> Counter(names)
Counter({'Brian': 4, 'John': 2, 'Sam': 2, 'Henry': 1})

它返回一個Counter()對象,它是dict的子類。

暫無
暫無

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

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