我有一個帶有數字串列的文本檔案(每行一個),是否可以從該文本檔案中制作一個串列,其中一行有一個數字?我需要這個,以便我可以成對地查看數字串列,我首先取前兩個數字,然后取第三個和第四個,然后像這樣遍歷整個檔案,直到沒有數字為止。目前我得到了同一行上的所有數字,但是當我需要使用除前兩個數字之外的其他數字時,它會變得棘手。
list = []
file = open("doc.txt", "r")
for line in file:
list.append(line.strip())
編輯:我一直試圖以不必要的復雜性來解決這個問題。我可以使用串列的索引使其作業(我假設)
uj5u.com熱心網友回復:
您可以執行以下操作來獲取對:
with open("doc.txt", "r") as file:
lst = [line.strip() for line in file] # do not shadow built-in name `list`
pairs = [lst[i:i 2] for i in range(0, len(lst), 2)]
另一種(更優雅)沒有中間list(更節省空間)的方法直接使用涉及的迭代器進行配對:
with open("doc.txt", "r") as file:
nums = map(str.strip, file)
nums = map(int, nums) # if needed for calculations
pairs = [*zip(nums, nums)]
for a, b in pairs:
print(a b)
print(a - b)
# ...
uj5u.com熱心網友回復:
看看這里。構建串列后,將其拆分為一個新串列,其中每個元素都是兩個元素的串列,然后迭代新串列。
list = []
file = open("doc.txt", "r")
for line in file:
list.append(float(line.strip()))
pairs = [list[2*i:2*i 2] for i in range(0, len(list)/2)]
for x1,x2 in pairs:
print("Calculate ({}, {})".format(x1, x2))
我在文本檔案中輸入了每行 1...10 的數字,輸出是
Calculate (1.0, 2.0)
Calculate (3.0, 4.0)
Calculate (5.0, 6.0)
Calculate (7.0, 8.0)
Calculate (9.0, 10.0)
假設文本檔案具有有效資料:數字和偶數行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344665.html
上一篇:將檔案中的文本讀入陣列時跳過整數
