私がしようとしているのは、同じサイズの2つのリストを取り、新しいリストを返す関数を作ることです製品と一緒に。"TypeError:リストインデックスはリストではなく整数またはスライスでなければなりません" // 2つのリストパラメータを持つ関数の場合
def mult_list(x=[],y=[]):
z = []
for i in (x,y):
if len(x) == len(y):
z.append(x[i]*y[i])
else:
print("length of list not equal")
return x,y
をしかし、私はのような何かしようとすると、私はエラーを取得しています:コードをテストするためにmult_list([8,1,4,8],[2,5,5,8])
を例x = [1,2,3]
とy = [4,5,6]
は、これは私がこれまで持っているものであるリスト[4,10,18]
を返します。それが何らかの理由で二回print文を繰り返し以来
そして、私はmult_list([8,1,8],[2,5,5,8])
のように不均等な大きさのリストをテストするとき、私は推測している私の出力に
>>> mult_list([8,1,8],[2,5,5,8])
length of list not equal
length of list not equal
([8, 1, 8], [2, 5, 5, 8])
を取得するには、間違っています..
をあなたがI(x、y)のために 'どう思いますか:'をしているのですか?なぜあなたはループ内の長さをチェックしますか?なぜあなたは入力を返すのですか?また、https://stackoverflow.com/q/1132941/3001761 – jonrsharpe
に注意してください。1)パラメータに従ってリストとして定義されていると仮定した 'x'と' y'の値を調べたと思います。 2)私は、if/else文のためにforループが必要だと思ったので、長さが等しくなければ "else"はtが等しくないことを表示します。 3)関数の終わりに(もしあれば)パラメータを返すと思った。 – zainy
1.はい、 'i'がリストです。あなたは何を考えましたか? 'x [x]'は何をしますか?それは意味をなさない。 3.あなたは*できますが*(実際にはPythonを実行するためには一般的には独立しています)、おそらく最も重要なのは関数が返すようにすることではありません。私はあなたにこれを調査することをおすすめします。 http://pythontutor.com/、ここに賢明に対処するにはあまりにも多すぎることがあります。 – jonrsharpe