-1
numbers = []

dataFile = open("numbers.txt")

for inputLine in dataFile:
    elements = inputLine.split()
    numbers1 = elements[0]
    print(numbers1)

我的文本文件如下所示:

45
6
9
10
11

我试图让它读起来像这样,[45,6,9,10,11] 所以我可以进行排序过程,我知道如何进行排序,但是这个,我遇到了麻烦。我尝试了许多可能的方法来使它成为一条线,而不是 5 条线。我试着做 strip(),结果并不好。

编辑:

elements = []

dataFile = open("numbers.txt")

for inputLine in dataFile:
    elements = [int(line) for line in dataFile]
    print(elements)

这个问题,我的文本文件如下所示:

45
6
9
10
11

当我这样做时,它丢失了 45。每次,它都会带走第一个数字。

谢谢。

4

3 回答 3

2

使用列表推导:

with open("numbers.txt") as f:
   nums = [int(line) for line in f]
   nums.sort()
   print nums

输出:

[6, 9, 10, 11, 45]
于 2013-10-05T15:31:46.610 回答
0

列表理解的另一种替代方法是使用 numpy,numpy.loadtxt这是一种加载 .txt 的简单方法,然后您可以使用以下命令对数组进行排序numpy.sort

>>> import numpy as np
>>> x = np.loadtxt('numbers.txt')
>>> print x
 [ 45.   6.   9.  10.  11.]
>>> np.sort(x)
 [  6.   9.  10.  11.  45.]
于 2013-10-05T15:33:32.263 回答
0

您可以使用print(numbers1),(末尾有逗号)而不是仅仅print(numbers1)让它在一行上打印。

于 2013-10-05T15:34:07.263 回答