私はリストのリスト内のアイテムを見つけようとしています。しかし、TypeError: 'float' object is not subscriptable
が発生しました。pythonリストのリスト内のアイテムを見つけて 'float'オブジェクトにサブスクリプトがありません
は、ここで質問/リストです:
私はhistory_lists
に各リストの最後の2つのアイテムを見つけて、その平均値を計算したい
history_lists=[[1,2,3,4],[2,3,1],[5,8,0,1]]
。
は、ここに私のコードです:...私はあなたがこれらの線に沿ってより多くの何かをしたいと思います
def get_question(self):
combined_lists_history.append(var1)
combined_lists_history.append(var2)
history_lists = [[] for _for _ in range(max(combined_lists_history[1::2]))]
for i in range(1, len(combined_lists_history),2):
history_lists[combined_lists_history[i]-1].append(combined_lists_history[i-1])
# this codes are for recreating a list of lists
# combined_lists_history = [1,**1**,3,**1**,5,**3**,4,**1**,2,**2**,3,**2**,1,**2**,8,**3**,0,**3**,1,**3**,2,**1**,]
# history_lists=[[1,2,3,4],[2,3,1],[5,8,0,1]]
def get_avg(self):
for i, lst in enumerate(history_lists):
(history_lists[i][-1] + history_lists[i][-2])/2.0
# for each list in history_lists, retrieve last two item
私は、エラーが不明だが、いずれにしても私はあなたのプログラムは、あなたが期待するものでしょうとは思いません。 return文を持つforループがあります。これは、プログラムがループ内で一度しか出てこないことを意味します。あなたのコードブロック全体は 'return(history_lists [0] [ - 1] + history_lists [0] [ - 2])/ 2.0'に相当します。たぶんあなたは返品の代わりに印刷したいですか?または、どこかに格納して、ループの最後にすべてを印刷しますか? – bouletta
なぜ 'return'ですか?ジェネレータを作る場合は、 'yield'を使います。また、変数に 'list'という名前を付けないでください。 'list(map(lambda x:sum(x [-2:])/ 2.0、history_lists))'はあなたを遠ざけるはずです。 – Abdou
エラーは、指定したコードにありません。完全なスタックトレースとコードをお願いします。 –