簡體   English   中英

將數字連接成 Python 中的文本列表

[英]Concatenate number into a list of text in Python

我正在嘗試使用 Python 將一些數字連接到文本列表中。這是我的代碼

import hashlib
def SHA1_hash(string):
    hash_obj = hashlib.sha1(string.encode())
    return(hash_obj.hexdigest())

with open("/Users/admin/Downloads/Project_files/dictionary.txt") as f:
    n = 5
    numtext_list = []
    for i in range(0,n+1):
        for j in f:
            numtext = j.strip() + str(i)
            numtext_list.append(numtext)
    print(numtext_list)

但是,它只將第一個數字(即 0)連接到文件元素,output 列表如下所示:

'yellow0', 'four0', 'woods0', 'hanging0', 'marching0', 'looking0', 'rouse0', 'lord0', 'sagde0', 'meadows0', 'sinking0', 'foul0', 'bringing0', 'disturb0', 'uttering0', 'scholar0', 'wooden0'

雖然我希望它也有

'yellow1', 'yellow2', 'yellow3', 'yellow4', 'yellow5','four0',...

以及列表中的其他文本和數字組合。

請幫助我,我是 Python 的新手,所以如果這不是一個好問題或者我寫的關鍵字有誤,請原諒,非常感謝。

第一次執行for j in f:時,您讀取了整個文件。 因此,當您到達for i循環的下一個迭代時,沒有任何內容可讀,因此內部循環立即結束並且沒有附加任何內容。

交換循環順序,這樣您只需讀取文件一次。

for j in f:
    word = j.strip()
    for i in range(0, n+1):
        numtext = f'{j}{i}'
        numlist.append(numtext)

其他可能的解決方案:

  1. 使用f.readlines()將文件讀入列表,然后對其進行循環。
  2. for j in f:之前放置f.seek(0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM