-2

どちらもリストである 2 つの引数を取るペアワイズ乗数関数を作成しようとしています。pairwise_multiply は、2 つの入力リストの各要素がペアごとに乗算された新しいリストを返す必要があります。例えば

result = pairwise_multiply([1, 2], [3, 4])
print(result)

> [3, 8]

これは私の現在の関数ですが、構文エラーが発生し続けます:

def pairwise_multiply([l1], [l2]):
  i = 0
  while 1 <= len(l1):
    lst = int(l1[i] * l2[i])
    i = i + 1
  return lst
4

2 に答える 2

3

ここのコードで-

def pairwise_multiply([l1], [l2]):

リストを引数として渡すために角括弧は必要ありません。それを-に置き換えます

def pairwise_multiply(l1, l2):

別の実装、よりpythonicは、 zipでリスト内包表記を使用することです-

[i*j for i, j in zip(l1, l2)]

zipが行うことは(公式ドキュメントから)-

各イテラブルから要素を集約するイテレータを作成します。

タプルの反復子を返します。i 番目のタプルには、各引数シーケンスまたは iterable の i 番目の要素が含まれます。最短の入力 iterable が使い果たされると、反復子は停止します。単一の iterable 引数を指定すると、1 タプルのイテレータが返されます

于 2018-08-30T12:30:33.800 に答える