第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

計(jì)算單詞列表中的字母頻率,排除同一單詞中的重復(fù)項(xiàng)

計(jì)算單詞列表中的字母頻率,排除同一單詞中的重復(fù)項(xiàng)

人到中年有點(diǎn)甜 2021-10-12 17:25:01
我試圖在單詞列表中找到最常用的字母。我在算法上苦苦掙扎,因?yàn)槲抑恍枰谔^(guò)重復(fù)項(xiàng)時(shí)計(jì)算一個(gè)單詞中的字母頻率,所以我需要幫助找到一種方法來(lái)計(jì)算整個(gè)列表中字母的頻率,每個(gè)單詞只出現(xiàn)一次,忽略第二次出現(xiàn)。例如,如果我有:words = ["tree", "bone", "indigo", "developer"]頻率將是:letters={a:0, b:1, c:0, d:2, e:3, f:0, g:1, h:0, i:1, j:0, k:0, l:1, m:0, n:2, o:3, p:1, q:0, r:2, s:0, t:1, u:0, v:1, w:0, x:0, y:0, z:0}正如您從字母字典中看到的:'e' 是 3 而不是 5,因?yàn)槿绻?'e' 在同一個(gè)單詞中重復(fù)多次,它應(yīng)該被忽略。這是我想出的算法,它是用 Python 實(shí)現(xiàn)的:for word in words:    count=0;    for letter in word:        if(letter.isalpha()):            if((letters[letter.lower()] > 0  && count == 0) ||               (letters[letter.lower()] == 0 && count == 0)):                    letters[letter.lower()]+=1                    count=1            elif(letters[letter.lower()]==0 && count==1):                   letters[letter.lower()]+=1但它仍然需要工作,我不能考慮其他任何事情,我很高興任何能幫助我考慮可行解決方案的人。
查看完整描述

3 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

不使用更新的@Primusa 答案的變體:


from collections import Counter


words = ["tree", "bone", "indigo", "developer"]

counts = Counter(c for word in words for c in set(word.lower()) if c.isalpha())

輸出


Counter({'e': 3, 'o': 3, 'r': 2, 'd': 2, 'n': 2, 'p': 1, 'i': 1, 'b': 1, 'v': 1, 'g': 1, 'l': 1, 't': 1})

基本上將每個(gè)單詞轉(zhuǎn)換為一個(gè)集合,然后迭代每個(gè)集合。


查看完整回答
反對(duì) 回復(fù) 2021-10-12
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

創(chuàng)建一個(gè)計(jì)數(shù)器對(duì)象,然后用每個(gè)單詞的集合更新它:


from collections import Counter


wordlist = ["tree","bone","indigo","developer"]


c = Counter()

for word in wordlist:

    c.update(set(word.lower()))


print(c)

輸出:


Counter({'e': 3, 'o': 3, 'r': 2, 'n': 2, 'd': 2, 't': 1, 'b': 1, 'i': 1, 'g': 1, 'v': 1, 'p': 1, 'l': 1})

請(qǐng)注意,雖然 中不存在的字母wordlist不存在于 中Counter,但這很好,因?yàn)?a 的Counter行為類似于 a defaultdict(int),因此訪問(wèn)不存在的值會(huì)自動(dòng)返回默認(rèn)值 0。


查看完整回答
反對(duì) 回復(fù) 2021-10-12
?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊

一個(gè)沒有柜臺(tái)


words=["tree","bone","indigo","developer"]

d={}

for word in words:         # iterate over words

    for i in set(word):    # to remove the duplication of characters within word

        d[i]=d.get(i,0)+1

輸出


{'b': 1,

 'd': 2,

 'e': 3,

 'g': 1,

 'i': 1,

 'l': 1,

 'n': 2,

 'o': 3,

 'p': 1,

 'r': 2,

 't': 1,

 'v': 1}


查看完整回答
反對(duì) 回復(fù) 2021-10-12
  • 3 回答
  • 0 關(guān)注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)