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

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

如何在python中找到相同的數(shù)字?

如何在python中找到相同的數(shù)字?

慕婉清6462132 2022-11-09 16:41:25
我在 Python 3.8.0 中遇到了這個(gè)程序的問(wèn)題。我有兩個(gè)文本文件(它們不能合并)。它們包含大約 1000 個(gè)數(shù)字,每個(gè) 15 位長(zhǎng)(看起來(lái)像這樣104988537042058)。我必須找到相同的數(shù)字。有人可以幫助我嗎?我有點(diǎn)失落。我寫了這個(gè)程序,但我可能在某個(gè)地方有錯(cuò)誤。我是編程新手,找不到問(wèn)題所在。A=open("A.txt",mode="r")B=open("B.txt",mode="r")out=open("Spol.txt", mode="w+")#print(A)#print(B)X=""for lineA in A:    for lineB in B:        if lineA==lineB:            X+=(lineA)        else:            ()        breakA.close()B.close()out.write(X)out.close()
查看完整描述

4 回答

?
FFIVE

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

您的代碼有兩個(gè)問(wèn)題,break第一次與 lineB 比較后將退出循環(huán)。另一個(gè)問(wèn)題是當(dāng)您讀取文件時(shí),您使用設(shè)置在文件開(kāi)頭的光標(biāo),一旦您讀取文件,光標(biāo)就位于末尾,因此每次嘗試使用相同的光標(biāo)時(shí)它都會(huì)為空再次處理而不重置光標(biāo)。由于您似乎不關(guān)心重復(fù)項(xiàng),因此我編寫了以下代碼,它應(yīng)該可以完成您想要的操作:


with open("A.txt") as Af, open("B.txt") as Bf:

    numsA = {int(lineA.strip()) for lineA in Af}

    numsB = {int(lineB.strip()) for lineB in Bf}

    print(numsA & numsB)


查看完整回答
反對(duì) 回復(fù) 2022-11-09
?
溫溫醬

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

迭代 B 的內(nèi)部循環(huán)不起作用,或者更準(zhǔn)確地說(shuō),對(duì)于 A 的第一行,它只工作一次。之后,它已經(jīng)在 B 的末尾。啊,是的,break也是 - 將在第一次迭代后退出的內(nèi)循環(huán)。你可能打算把它放在里面if

您可以在內(nèi)部循環(huán)之前重新打開(kāi) B 。無(wú)論如何,這非常慢 - 盡管對(duì)于 1000 個(gè)數(shù)字仍然可以。最好將 A 的內(nèi)容讀入集合,然后遍歷 B,尋找集合中存在的數(shù)字。

或者,如果您處于類 unix 環(huán)境中,只需cat A.txt B.txt| sort | uniq -d假設(shè)您在 A 或 B 中沒(méi)有重復(fù)。如果您仍然可以在 shell 中執(zhí)行此操作
(sort A.txt| uniq; sort B.txt | uniq) | sort | uniq -d


查看完整回答
反對(duì) 回復(fù) 2022-11-09
?
素胚勾勒不出你

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

您將不需要else. 將 break 移到條件內(nèi)部,這樣它只會(huì)在找到匹配項(xiàng)時(shí)才中斷內(nèi)部循環(huán):


file_A=open("A.txt",mode="r")

file_B=open("B.txt",mode="r")

out=open("Spol.txt", mode="w+")


for lineA in A:

    for lineB in B:

        if lineA==lineB:

            X+=(lineA)

            break


A.close()

B.close()

out.write(X)

out.close()


查看完整回答
反對(duì) 回復(fù) 2022-11-09
?
炎炎設(shè)計(jì)

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

假設(shè)每個(gè)文件中的每一行都是一個(gè)數(shù)字,您可以使用 python集合將所有行從第一個(gè)文件加載到一個(gè)集合,并將所有行從第二個(gè)文件加載到另一個(gè)集合,然后使用集合交集。例子:


# Reads into a set the content of file1 line by line

with open('file1.txt', 'r') as fs:

    file1_set = set(fs.readlines())


# Reads into a set the content of file2 line by line

with open('file2.txt', 'r') as fs:

    file2_set = set(fs.readlines())


# After both files contents (the numbers) are in sets

# then uses set intersection to find numbers appearing in both files

print(file1_set.intersection(file2_set))

最后一行將打印兩個(gè)文件中出現(xiàn)的所有數(shù)字


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

添加回答

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