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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嵌套 for 循環(huán)遍歷文本文件中的每個組合

嵌套 for 循環(huán)遍歷文本文件中的每個組合

拉丁的傳說 2021-12-17 15:34:35
下面是我的代碼:with open('test.txt') as f:    for i in f:        for j in f:            pw_n= i+j            print(pw_n)test.txt 中的示例數(shù)據(jù)是:USACanadaMexicoChinaRussia當前輸出:USACANADAUSAMEXICOUSAChinaUSARussia以上很棒,但我希望它經(jīng)歷所有迭代。所以,在完成美國之后,我希望它去加拿大,然后是墨西哥等......例如:CanadaUSACanadaCanadaCanadaMexico..........任何有關這方面的幫助都會很棒。我試圖將 'i' 增加 1,但這不起作用。
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

如果你想盡可能接近你當前的代碼,你應該使用file.readlines():


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

    lines = f.readlines()

    for i in lines:

        for j in lines:

            pw_n = i + j

            print(pw_n)

另外,我建議更改lines = f.readlines()為:


lines = [x.rstrip('\n') + '\n' for x in f.readlines()]

該列表理解將強制所有單詞以 a 結尾'\n'(在您的文件Russia中沒有任何'\n'結尾,因此它在輸出中的顯示方式不同,這解決了這個問題)。


如果您正在尋找更好的代碼,您應該使用itertools.permutations(iterable, r=None),r每個組合的項目數(shù)在哪里(在這種情況下,我們需要 2 個)


from itertools import permutations

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

    for x, y in permutations(f.readlines(), 2):

        print(x + y)

您還可以通過添加以下內(nèi)容來改進此代碼:


for x, y in permutations((x.rstrip('\n') + '\n' for x in f.readlines()), 2):

這里不需要列表理解,相反,我們可以使用生成器表達式,這對內(nèi)存更友好。


由于您在循環(huán)內(nèi)迭代每個排列for,因此您無需將其存儲為列表,這意味著您無需同時將所有排列存儲在內(nèi)存中,而是在您使用時計算它們他們。這同樣適用于生成器表達式,您不會將它與第一個代碼中的列表理解相反。


查看完整回答
反對 回復 2021-12-17
?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

這是一種解決方案


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

    lines = f.readlines()


for i, val in enumerate(lines):

    for j in range(i+1, len(lines)):

        print("%s%s" %(val, lines[j]))

    print("")


查看完整回答
反對 回復 2021-12-17
?
ITMISS

TA貢獻1871條經(jīng)驗 獲得超8個贊

看看https://docs.python.org/3.4/library/itertools.html#itertools.permutations


>>> list(permutations(['USA', 'Canada', 'Mexico'], 2)) 

[

    ('USA', 'Canada'), 

    ('USA', 'Mexico'), 

    ('Canada', 'USA'), 

    ('Canada', 'Mexico'), 

    ('Mexico', 'USA'), 

    ('Mexico', 'Canada')

]


查看完整回答
反對 回復 2021-12-17
  • 3 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號