0

Python で 1 つのリストのすべての要素を別のリストのすべての要素と乗算し、乗算結果のバリエーションの結果を合計するにはどうすればよいですか?

list_1 = [0, 1, 2, 3, 4, 5]

list_2 = [11, 23, m]

list_2 の m 要素は任意の数にできますが、リスト内の要素の長さは入力で入力されます。したがって、基本的にそのリストには最低 2 つの要素が含まれ、ユーザーの要件に基づいて最大 12 まで可能です。

私が探しているのは、次の結果リストを許可する関数/アルゴリズムです。

0*11 + 0*23 +..+ 0*m

1*11 + 0*23 +..+ 0*m

2*11 + 0*23 +..+ 0*m

..

3*11 + 2*23 + .. + 5*メートル

..

5*11 + 5*23 +..+ 5*メートル

4

3 に答える 3

4
[sum(x * y for x in list_2) for y in list_1]
于 2013-07-22T21:45:23.850 に答える
2

itertools.productlist1の要素で乗算する の要素を選択するすべての方法を生成するのに役立ちますlist2

sums = []
for list1_choices in itertools.product(list1, repeat=len(list2)):
    sums.append(sum(x*y for x, y in zip(list1_choices, list2))

または、リスト内包表記として:

[sum(x*y for x, y in zip(list1_choices, list2))
 for list1_choices in itertools.product(list1, repeat=len(list2))]
于 2013-07-22T21:56:52.837 に答える