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

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

刪除包含相同字母超過(guò)3次的行

刪除包含相同字母超過(guò)3次的行

我有這段代碼,如果行 3 次包含相同的字母,則刪除行。如果字母重復(fù)超過(guò) 3 次(分隔),我需要它來(lái)刪除該行。3次(分開(kāi))我的意思是例如這一行BAABAAG。請(qǐng)注意,這一行包含該字母A四次,但我的代碼沒(méi)有刪除它,因?yàn)檫@四個(gè)字母A并不彼此相鄰。bad_words = ['AAA','BBB','CCC','DDD','EEE','FFF','GGG','HHH','III','JJJ','KKK','LLL','MMM','NNN','OOO','PPP','QQQ','RRR','SSS','TTT','UUU','VVV','WWW','XXX','YYY','ZZZ','111','222','333','444','555','666','777','888','999','000']with open('7.csv') as oldfile, open('new7.csv', 'w') as newfile:    for line in oldfile:        if not any(bad_word in line for bad_word in bad_words):            newfile.write(line)文件樣本:BAABAABBAABAACBAABAADBAABAAEBAABAAFBAABAAGBAABAAHBAABAAIBAABAAJBAABAAKBAABAALBAABAAMBAABAANBAABAAOBAABAAPBAABAAQ
查看完整描述

4 回答

?
慕婉清6462132

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

無(wú)需顯式創(chuàng)建bad_words列表,您repeater也可以將其設(shè)置為變量


repeater = 3

newlist = []


with open('input.txt') as f:    

    x = f.readlines()

    for val in x:

        word = val.split('\n')[0]

        flag = True

        for letter in word:

            if letter.upper() * repeater in word:

                flag = False

                break

        if flag:

            newlist.append(word)

    newlist = list(set(newlist))



with open('output.txt', mode='w', encoding='utf-8') as newfile:

    for value in newlist:

        newfile.writelines(value+"\n")


查看完整回答
反對(duì) 回復(fù) 2023-08-22
?
四季花海

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

您可以創(chuàng)建一個(gè)函數(shù)來(lái)檢查某個(gè)字符是否出現(xiàn)超過(guò) 3 次,然后在代碼中調(diào)用它:


def letter_count(str):

    counts = dict()


    for l in str:

        if l in counts:

            counts[l] += 1

        else:

            counts[l] = 1

    counts[max(counts, key=lambda x : counts[x])]


    return counts[max(counts, key=lambda x : counts[x])] > 3

并在您的代碼中這樣調(diào)用它:


with open('7.csv') as oldfile, open('new7.csv', 'w') as newfile:

    for line in oldfile:

        if if(letter_count(line)):

            newfile.write(line)


查看完整回答
反對(duì) 回復(fù) 2023-08-22
?
慕妹3242003

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

您可以使用 aCounter檢查每行中不同字母的頻率,然后僅在它們未通過(guò)閾值時(shí)才寫(xiě)入此行:

from collections import Counter


threshold = 3

with open('7.csv') as oldfile, open('new7.csv', 'w') as newfile:

? ? for line in oldfile:

? ? ? ? counts = Counter(line)

? ? ? ? if all(count < threshold for count in counts.values()):

? ? ? ? ? ? newfile.write(line)

這使用該all()函數(shù)來(lái)確保沒(méi)有字母超過(guò)閾值。



查看完整回答
反對(duì) 回復(fù) 2023-08-22
?
神不在的星期二

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

使用單個(gè)字符而不是三元組和 的列表string.count()。制作一個(gè)小函數(shù)來(lái)封裝過(guò)濾邏輯可能也是一個(gè)不錯(cuò)的選擇。


def f(line, chars, limit):

    for char in chars:

        if line.count(char) > limit:

            return False

    return True


bad_chars = ['A','B', ...]


with open('7.csv', 'r') as oldfile, open('new7.csv', 'w') as newfile:

    for line in oldfile:

        if f(line, bad_chars, 3):

            newfile.write(line)


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

添加回答

舉報(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)