![](/img/trans.png)
[英]How do I stop decimals changing to integers when replacing the numbers of a row in an array?
[英]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.