1

タプルのリストがあるとしましょう:

a = [(1, 2), (3, 4), (4, 5)]

および別のリスト、タプルなし:

b = [1, 2, 3]

リスト内包表記を使用して、 の各タプルの最初の値のみを のそれぞれの値で乗算するにはどうすればよいaですbか? つまり、[a[0][0] * b[0], a[1][0] * b[1], a[2][0] * b[2]] (等しいはずです[1, 6, 12]

4

3 に答える 3

4
>>> a = [(1, 2), (3, 4), (4, 5)]
... b = [1, 2, 3]
>>> [x[0]*y for x, y in zip(a, b)]
[1, 6, 12]

zip機能が鍵です。

于 2012-09-30T18:13:47.420 に答える
1

たとえば、次のように使用できます。 [a[0]*b for a,b in zip(a,b)]

このzip関数は、タプルのリストを作成します。リストは の引数の最短リストと同じくらい長く、各タプルzipのth 要素は のth 引数から取得されます。iizip

>>> c = [1, 2, 3]
>>> d = [4, 5, 6]
>>> zip(c,d)
[(1, 4), (2, 5), (3, 6)]
于 2012-09-30T18:13:41.993 に答える