【问题标题】:how do I append a file of numbers with both integers and decimals to a list/array in python如何将具有整数和小数的数字文件附加到python中的列表/数组
【发布时间】:2021-07-18 18:45:11
【问题描述】:
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']

【问题讨论】:

  • 不确定这是否能回答您的问题,但您可能想看看stackoverflow.com/a/43474224/1878262,同样就空格而言,您可能想用rstrip() 之类的东西进行修剪并考虑使用@987654326 @
  • 如果对您有帮助,请不要忘记将以下其中一项标记为答案

标签: python list file


【解决方案1】:

您可以像这样读取文件,然后只需使用 .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']

【讨论】:

    【解决方案2】:

    删除循环并替换为:

    values = knapSackValues.split()
    

    【讨论】:

      【解决方案3】:

      您可以通过阅读这些行来尝试以下操作。

      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']
      

      或者只是删除循环并使用 @purple 提到的 split()

      values = knapSackValues.split()
      
      >>>['5', '10.5', '3.25', '2', '5', '4.5', '7', '10.5', '4.25', '3.75', '4.5', '8']
      

      【讨论】:

        猜你喜欢
        • 2013-03-22
        • 1970-01-01
        • 2014-03-23
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        • 2017-06-17
        • 2021-04-01
        • 1970-01-01
        相关资源
        最近更新 更多