最初のブロックは、このプログラムで使用される入力ファイルです(単に.txtファイルのみ)。 'SearchByTitle'機能では、ターゲットがリスト内にある場合、ターゲットがリスト内にあれば正しくピックアップされ、正常に印刷されますが、実際のターゲットワードが印刷されます。行全体を印刷する方法はありますか?たとえば、「Sempiternal」が検索された場合、ターゲット単語ではなく、Sempiternal、Bring Me The Horizon、Metalcore、14.50を返すことができますか? また、SortingByPriceを使用すると、それよりも少ないものではなく、ターゲットよりも最も近い価格だけが返されます。リストのリストのターゲットからの行を印刷
正しい方向のナッジはすばらしく、私はこれを数日間しゃべっています。
INPUTファイル:
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