簡體   English   中英

如何將帶有整數和小數的數字文件附加到 python 中的列表/數組

[英]how do I append a file of numbers with both integers and decimals to a list/array in python

f = open(sys.argv[1])
knapSackValues = f.read()
values = []
for number in knapSackValues:
    if(number != ','):
        values.append(number)
print(values)
f.close()

這是我的代碼,但列表不是我想要的。

我的輸入是

5 10.5
3.25 2 5 4.5 7
10.5 4.25 3.75 4.5 8

我希望它使這些值中的每一個都是列表/數組的一個元素。

現在輸出一團糟,這就是拉起的原因。

['5', ' ', '1', '0', '.', '5', '\n', '3', '.', '2', '5', ' ', '2', ' ', '5', ' ', '4', '.', '5', ' ', '7', '\n', '1', '0', '.', '5', ' ', '4', '.', '2', '5', ' ', '3', '.', '7', '5', ' ', '4', '.', '5', ' ', '8']

您可以像這樣讀取文件,然后只需使用 .split()

with open ('test.txt') as f:
    f = f.read().split()
    print(f)

['5', '10.5', '3.25', '2', '5', '4.5', '7', '10.5', '4.25', '3.75', '4.5', '8']

刪除循環並替換為:

values = knapSackValues.split()

您可以通過閱讀這些行來嘗試如下。

f = open("./numbers.txt")
knapSackValues = f.readlines()
values = []
for number in knapSackValues:
    values.extend(number.split(" "))
print(values)
f.close()

>>>['5', '10.5', '3.25', '2', '5', '4.5', '7', '10.5', '4.25', '3.75', '4.5', '8']

或者只是刪除循環並使用 split() 作為@purple 提到

values = knapSackValues.split()

>>>['5', '10.5', '3.25', '2', '5', '4.5', '7', '10.5', '4.25', '3.75', '4.5', '8']

暫無
暫無

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

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