第一個塊是在此程序中使用的輸入文件(僅僅是.txt文件)。 在'SearchByTitle'函數中,如果目標位於列表中並且已成功打印出來,它將正確拾取,但它只會打印出實際的目標單詞。有沒有辦法讓它打印出整條生產線?例如,如果搜索到「Sempiternal」,是否可以返回Sempiternal,帶來地平線,Metalcore,14.50,而不僅僅是目標單詞? 此外,當SortingByPrice時,它只會返回小於目標的最接近的價格,而不是所有更少的價格。列表中的列表中的目標打印行
任何在正確的方向微調將是偉大的,我一直在這個好幾天搞砸了。
輸入文件:
Sempiternal,Bring Me The Horizon,Metalcore,14.50
Badlands,Halsey,Indie Pop,19.95
Wildlife,La Dispute,Post Hardcore,9.60
Move Along,The All American Rejects,Punk Rock,10.20
功能:
def createDatabase(CD):
aList = []
file = open(CD)
for line in file:
line = line.rstrip().split(",") #strip \n and split at ,
aList.append(line) #add lines into formerly empty aList
for i in range(len(aList)):
aList[i][3] = float(aList[i][3]) #override line for price to be float
return aList
def PrintList(aList):
for line in aList:
album = str(line[0])
artist = str(line[1])
genre = str(line[2])
price = str(line[3])
print("Album: " + album + " Artist: " + artist + " Genre: " + genre + " Price: $" + price)
return
def FindByTitle(aList):
target = input("Enter Title to Search: ")
title = [item[0] for item in aList]
for item in title:
if target in item:
print("Title name found in database: " + target)
return aList
print("Title not found")
return None
def FindByPrice(aList):
target = float(input("Enter Maximum Price: "))
price = [item[3] for item in aList]
for item in price:
if item <= target:
print(item)
return aList
print("Artist not found")
return None
但是,如果搜索到不同的標題,這是如何解決的? – Staylor742
我不確定我明白你的意思。如果你想打印一個列表,你可以使用isin()這樣的標題列表對應的行:df [df [0] .isin(list_of_tunes)] – ysearka