(任意のサイズの)2つのタプルの値をまとめて出力タプルを作成したいとします。たとえば :2つの異なるタプルの値を組み合わせる最良の方法
a = (1,4)
b = (2,3)
出力:(3,7)
だけよりも、それを行うには良い方法があります:
output = (a[0] + b[0], a[1]+b[1])
(任意のサイズの)2つのタプルの値をまとめて出力タプルを作成したいとします。たとえば :2つの異なるタプルの値を組み合わせる最良の方法
a = (1,4)
b = (2,3)
出力:(3,7)
だけよりも、それを行うには良い方法があります:
output = (a[0] + b[0], a[1]+b[1])
ジェネレータ式を使用することはどうですか?あなたをできるようになりますあなたはタプルが同じ長さであることを知らない場合、あなたは(短いタプルの長さで停止します)zip
ような、より派手なものを使用して試みることができる
output = tuple(a[i] + b[i] for i in range(len(a)))
、またはitertools.izip
(異なる長さのタプルを扱う方法を制御する)。
tuple(x+y for (x,y) in zip(a,b))
あなたは2つのタプルに固執したい場合は、あなたが持っているものさ良い(とおそらく最高)。別のデータ構造を使用することも考えられます。つまり、+
演算子が要素ごとに要素を追加します。たとえば:
complex
番号がnumpy
配列__add__
魔法の方法をオーバーライドし、独自のPoint
クラスを書く(.real
と.imag
コンポーネントを使用して)2ベクトルのように追加しますあなたがすべての要素を綴る必要がないように、それをやり遂げようとしないで、何か機能的に行く:
output = tuple(map(sum, zip(a,b)))
か、あなたは、再び、tuple
に供給しなければならないリスト-COMP:
output = tuple([i+j for i,j in zip(a,b)])
サイズが異なる可能性がある場合は、必ず、0
のフィル値を使用して、itertools
からzip_longest
でzip
を置き換えることができ。
tuple(map(lambda x, y: x + y, a, b))
答えを与えるときは、[あなたの答えが何であるかについてのいくつかの説明](http://stackoverflow.com/help/how-to-answer)を与えることが望ましいです。 –
import operator
tuple(map(operator.add, a, b))
あなたが「2組」について尋ねている場合は2つの要素、または「2組」とのタプルを持っているので、明確にしてくださいあなたはタプルのペアを追加していることを意味します。 – wim