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

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

計(jì)算Python中一個(gè)字符在一行中重復(fù)了多少次

計(jì)算Python中一個(gè)字符在一行中重復(fù)了多少次

蕪湖不蕪 2021-08-17 17:10:52
我目前正在嘗試解決在 Python 中計(jì)算連續(xù)重復(fù)字符的問題。這段代碼一直工作到字符串中的最后一個(gè)不同的字符為止,我不知道如何解決這個(gè)問題def repeating(word):     count=1    tmp = ""    res = {}    for i in range(1, len(word)):        tmp += word[i - 1]        if word[i - 1] == word[i]:            count += 1        else :            res[tmp] = count            count = 1            tmp = ""    return resword="aabc"print (repeating(word))給定的輸出應(yīng)該是 {'aa': 2, 'b': 1, 'c' : 1},但我得到 {'aa': 2, 'b': 1}我該如何解決這個(gè)問題?
查看完整描述

2 回答

?
慕的地6264312

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

在這種情況下,您可以使用collections.Counter為您完成所有工作。


>>> from collections import Counter

>>> Counter('aabc')

Counter({'a': 2, 'c': 1, 'b': 1})

您還可以迭代字符串中的字母,因?yàn)檫@是可迭代的。但隨后我會(huì)使用集合中的 defaultdict 來保存“計(jì)數(shù)”部分。


>>> from collections import defaultdict

>>> 

>>> def repeating(word): 

...     res = defaultdict(int)

...     for letter in word:

...         res[letter] +=1

...     return res

... 

>>> word="aabc"

>>> print (repeating(word))

defaultdict(<type 'int'>, {'a': 2, 'c': 1, 'b': 1})


查看完整回答
反對(duì) 回復(fù) 2021-08-17
?
九州編程

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

我會(huì)建議使用計(jì)數(shù)器從collections模塊。它正是您想要實(shí)現(xiàn)的目標(biāo)


from collections import Counter


wourd = "aabc"

print(Counter(word))

# Counter({'a': 2, 'b': 1, 'c': 1})

但是如果你想自己實(shí)現(xiàn)它,我應(yīng)該知道那str是一個(gè) Iterable。因此,您可以使用簡(jiǎn)單的循環(huán)遍歷每個(gè)字母。


此外,還有一個(gè)叫做defaultdict 的東西,它在這種情況下非常方便。通常,您必須檢查是否已經(jīng)定義了一個(gè)鍵(在這種情況下是一個(gè)字母)。如果不是,您必須創(chuàng)建該密鑰。如果您使用的是 a defaultdict,您可以定義每個(gè)新鍵都有一個(gè)默認(rèn)值。


from collections import defaultdict


def repeating(word):

    counter = defaultdict(int)

    for letter in word:

       counter[letter] += 1

    return counter

結(jié)果將是相似的:


In [6]: repeating('aabc')

Out[6]: defaultdict(int, {'a': 2, 'b': 1, 'c': 1}) 


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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