なぜそれが答えを返していないのだろうか?Pythonの乗算は、リスト
x=[1,2,3]
y=[2,4,6]
xy = []
def mult_list(xy):
for i in range(0, len(x)):
xy.append(x[i]*y[i])
return xy
なぜそれが答えを返していないのだろうか?Pythonの乗算は、リスト
x=[1,2,3]
y=[2,4,6]
xy = []
def mult_list(xy):
for i in range(0, len(x)):
xy.append(x[i]*y[i])
return xy
x=[1,2,3]
y=[2,4,6]
res=[i*j for i,j in zip(x,y)]
私はジップfunction.Theのzip()関数は、反復可能オブジェクトを取る(ゼロ以上とすることができる)が使用され、ここでやっていること、渡されたイテラブルに基づいて要素をまとめるイテレータを行い、イテレータを返します。タプルの数。
例:
numberList = [1, 2, 3]
strList = ['one', 'two', 'three']
# No iterables are passed
result = zip()
# Converting itertor to list
resultList = list(result)
print(resultList)
# Two iterables are passed
result = zip(numberList, strList)
# Converting itertor to set
resultSet = set(result)
print(resultSet)
出力: []
{(2, 'two'), (3, 'three'), (1, 'one')}
あなたは、いくつかの説明を提供する必要があります返す: – DeepSpace
Deepspaceうん、私は編集しています私のポスト:) – Demonking28
はあなたのインデントが正しいことを確認してください。 return xy
はループの外側にある必要があります。
xy
グローバルリストを持っていないことが好ましいです。代わりに、関数内で定義します。それがグローバルである場合は、mul_list
が複数回呼び出された場合、面白い結果が得られます。
def mult_list(list_a, list_b):
xy = []
for i in range(0, len(list_a)):
xy.append(list_a[i] * list_b[i])
return xy
x = [1, 2, 3]
y = [2, 4, 6]
print(mult_list(x, y))
# [2, 8, 18]
range
を使用していないニシキヘビと考えられています。代わりに
zip
を使用することができます。
def mult_list(list_a, list_b):
xy = []
for num_a, num_b in zip(list_a, list_b):
xy.append(num_a * num_b)
return xy
x = [1, 2, 3]
y = [2, 4, 6]
print(mult_list(x, y))
# [2, 8, 18]
それはデフmult_listしなければならない(x、y)に答えを投げるのではなく、それは – Demonking28
@ Demonking28大丈夫、固定 – DeepSpace
(Y)FYI私はダウンあなたの答えを投票1ないよ:)私はそれを投票し一人です:) – Demonking28
期待どおりに動作しません。それが実際にあなたがやっていることであれば、おそらくグローバルリストを変更すべきではありません。そうでなければ、それは一度だけ動作します:) – miradulo
をまあ、スターターでは、あなたの仕様では、関数は引数として二つのリストを取ることを要求していますが、唯一* 1つの引数*を提供しています。さらに、グローバルに定義されたリストを使用しています...呼び出し元コードとは何ですか?関数の引数がどのように使われているかを根本的に理解しているようです。 –
あなたのファンクションには2つの引数が必要です。各リストに1つ。そして、あなたが世界的に返す予定のリストを定義しないでください。あなたの関数内でそれを行うと、ちょうどのみOP – gonxalo