を進行することができ、私はエラー私はこのコードエラーが文句を言わない私が
cost = float(prices[strs[0]][0])
TypeError: float() argument must be a string or a number, not 'list'
を実行したときに、私は
prices = {}
groceries = []
file = open("grocery_store_price_list.txt", "r")
for strx in file:
strs = list(filter(None, strx.strip().split(" ")))
prices[strs[0]] = [strs[1]], [strs[2]]
file.close()
file = open("my_personal_gro_list.txt", "r")
for strx in file :
strs = list(filter(None, strx.strip().split(" ")))
groceries.append([strs[1], strs[0]])
headings = "{:15s} {:3s} {:10s} {:5s} {:6s}".format("item", "qty", "unit",
"cost", "total")
print(headings)
finalCost = 0
for strs in groceries
item = strs[0]
qty = int(strs[1])
unit = prices[strs[0]][1]
cost = float(prices[strs[0]][0])
という値が1つあるようにして、 'print(prices [strs [0]] [0])'を追加して、floatに渡すタイプを確認してください。エラーは、それがリストであることを示します。したがって、索引付けのロジックが正しくない可能性があります。 – brokenfoot
'cost = float(prices [strs [0] [0] [0])'を使用します。あるいは、あなたが最初に望んでいたと思う 'prices [strs [0]] = [strs [1]、strs [2]]'にしたいかもしれません。 – CristiFati
私のソリューションは、最初の価格だけでなく、両方の価格を浮動小数点に変換します。 – alexisdevarennes