簡體   English   中英

嘗試將帶有數字的txt文件讀入列表,然后使用Python進行排序

[英]Trying to read a txt file with numbers into a list and then sort using Python

我有一個單行的txt文件file1.txt,它具有一系列的10個數字。

10,45,69,85,21,32,11,71,20,30

我想從txt文件中獲取這些數字,然后將它們添加到列表中,然后按升序對數字進行排序。

我努力了

myfile1 = open('file1.txt', 'r').readlines()

但這似乎給了我一個長度為1的列表,該列表顯然無法排序。

In [101]: myfile1
Out[101]: ['10,45,69,85,21,32,11,71,20,30']

我猜我閱讀文本文件的方式有問題,但是我似乎找不到合適的方法。

有點模糊以做1線,但基本上是:

with open('file1.txt', 'r') as f:
    data = sorted(map(int, f.readline().split(',')))

這是做什么的:

  1. 讀取1行: f.readline()
  2. ','字符上分割該行: .split(',')
  3. string list map(int, list)int值: map(int, list)
  4. 排序intlistsorted(list)

.readlines()會執行以下操作:逐行讀取文件。 在您的示例中,只有一行,因此長度為1。

在這一行中,您需要使用逗號分隔:

with open(file1.txt,'r') as myfile:
    for line in myfile:
        print sorted(map(int, line.split(',')))

或者,如果您有多行包含大量數字:

data = []
with open(file1.txt,'r') as myfile:
    for line in myfile:
        data.extend(map(int, line.split(',')))
print sorted(data)

在這里,我使用with with關鍵字來打開文件,可以逐行對其進行迭代。 然后,在每一行上使用字符串的split方法,該方法將返回字符串列表。 然后,我通過將int類型轉換函數應用於列表中的每個項目,使用map將這些字符串轉換為整數。 然后可以對該列表進行排序。 確保查看Python文檔上的字符串方法頁面

沒有輸入文件的測試:

numbers = "10,45,69,85,21,7,32,11,71,20,30"
data = []
data.extend(map(int, numbers.split(',')))
print sorted(data)

版畫

[7, 10, 11, 20, 21, 30, 32, 45, 69, 71, 85]

暫無
暫無

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

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