1

だから私はタプルのリストを持っています。リスト内の各タプルは同じ長さですが、タプルのサイズはリストによって異なります。たとえば、あるリストには長さ 4 のタプルを含めることができ、別のリストには長さ 5 のタプルを含めることができます。タプルの個々の値をそれぞれアンパックし、各値を使用して別のリストの要素で乗算したいと考えています。例 (長さ 3 のタプルのリスト):

somelist = [a,b,c]
tuplelist = [(2,3,5),(5,7,5),(9,2,4)]
listMult = []
for x,y,z in tuplelist:
    listMult.append([somelist[0]*x,somelist[1]*y,somelist[2]*z])

これの問題は、異なるサイズのタプルを持つ別のリストを使用している場合、スケーリングされないことです。

4

2 に答える 2

2

各タプルに含まれる要素の数がわからない場合、アンパックはお勧めできません。あなたの例では、代わりに次のことを行います。

listMult = [sum(x*y for x, y in zip(tup, somelist)) for tup in tuplelist]

一般に、イテレーション、スター引数、およびイテラブルをアンパックする代わりに直接操作するその他のものを使用しようとします。

于 2013-08-04T00:53:26.493 に答える