簡體   English   中英

計算字符串中字符的出現次數

[英]Count number of occurrences of a character in a string

我剛剛進入Python,我正在構建一個分析一組單詞的程序,並返回每個字母出現在文本中的次數。 即'A:10,B:3,C:5 ......等'。 到目前為止它工作得很好,除了我正在尋找一種方法來壓縮代碼,所以我不會寫出程序的每個部分26次。 這就是我的意思..

print("Enter text to be analyzed: ")
message = input()

A = 0
b = 0
c = 0
...etc

for letter in message:

    if letter == "a":
        a += 1
    if letter == "b":
        b += 1
    if letter == "c":
        c += 1
    ...etc

print("A:", a, "B:", b, "C:", c...etc)

有很多方法可以做到這一點。 大多數人使用字典( dict )。 例如,

count = {}
for letter in message:
    if letter in count:  # saw this letter before
        count[letter] += 1
    else:   # first time we've seen this - make its first dict entry
        count[letter] = 1

有更短的方式來編寫它,我相信其他人會指出,但是先研究這種方式,直到你理解它為止。 這堅持非常簡單的操作。

最后,您可以通過(例如)顯示它:

for letter in sorted(count):
    print(letter, count[letter])

同樣,有更短的方法可以做到這一點,但這種方式堅持非常基本的操作。

你可以使用Counter,但@TimPeters可能是正確的,最好堅持使用基礎知識。

from collections import Counter

c = Counter([letter for letter in message if letter.isalpha()])
for k, v in sorted(c.items()):
    print('{0}: {1}'.format(k, v))

暫無
暫無

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

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