簡體   English   中英

從文本文件中查找列表中最小的數字:Python

[英]Finding the smallest number in a list from a textfile: Python

在我的代碼中,我試圖從文本文件中獲取數字列表,並找到其中最小的兩個。 我該怎么辦?

Myfile = open("RoundOneTotalScores.txt","r")

AScore = ()
BScore = ()
CScore = ()
DScore = ()
EScore = ()
FScore = ()

for line in Myfile:
    if "A" in line.split(',')[0]:
        AScore = line.split(',')[1]

for line in Myfile:
    if "B" in line.split(',')[0]:
        BScore = line.split(',')[1]

for line in Myfile:
    if "C" in line.split(',')[0]:
        CScore = line.split(',')[1]

for line in Myfile:
    if "D" in line.split(',')[0]:
        DScore = line.split(',')[1]

for line in Myfile:
    if "E" in line.split(',')[0]:
        EScore = line.split(',')[1]

for line in Myfile:
    if "F" in line.split(',')[0]:
        FScore = line.split(',')[1]


list1 = [AScore, BScore, CScore, DScore, EScore, FScore]

int(list1)
smallest = min(list1)
print(smallest)

Myfile.close()

不斷出現的錯誤是:追溯(最近一次呼叫最近):EliminateR1()中文件“”,第1行,EliminateR1中文件“ D:\\ NEA Real \\ Test3.py”,行39 int(list1)TypeError :int()參數必須是字符串,類似字節的對象或數字,而不是“列表”

這是一個示例,假設您的數據看起來像這樣。 如果需要最小值,可以使用min 如果需要兩個最小值,則可以sort列表進行sort並選擇前兩個值:

txt = """A,1
B,3
F,5
D,4
C,2"""

values = [int(line.split(',')[1]) for line in txt.splitlines()]
print(values)
# [1, 3, 5, 4, 2]
print(min(values))
# 1
print(sorted(values))
# [1, 2, 3, 4, 5]
print(sorted(values)[:2])
# [1, 2]

如果您讀取文件,則可以使用:

with open("RoundOneTotalScores.txt") as f:
    lines = f.readlines()
values = [int(line.split(',')[1]) for line in lines]
print(values)
# [1, 3, 5, 4, 2]
print(min(values))
# 1
print(sorted(values))
# [1, 2, 3, 4, 5]
print(sorted(values)[:2])
# [1, 2]
print(sorted(values)[2:])
# [3, 4, 5]

請注意,定義了諸如list,dict和set之類的集合,因此您無需定義AScoreBScore ,...

暫無
暫無

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

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