2 つの 2D 配列を 1 つの NX2 配列に結合したいのですが、Python でどのコマンドを使用すればよいかわかりません。たとえば、、、a = [1.2.3] b = [4,5,6]
a の要素を x 座標として、b を y 座標として持つ新しい配列が必要です。c = [(1,4)],(2,5),(3,6)]
Python言語でこれに関するヒントはありますか?
2 つの 2D 配列を 1 つの NX2 配列に結合したいのですが、Python でどのコマンドを使用すればよいかわかりません。たとえば、、、a = [1.2.3] b = [4,5,6]
a の要素を x 座標として、b を y 座標として持つ新しい配列が必要です。c = [(1,4)],(2,5),(3,6)]
Python言語でこれに関するヒントはありますか?
あなたは幸運です。なぜなら、Python にzip
はまさにあなたが望むことを行う組み込み関数があるからです。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
[(1, 4), (2, 5), (3, 6)]
Python 3 ではzip
、リストではなくイテレータを返すためlist(zip(a, b))
、リストを取得するには を使用する必要があることに注意してください。
zip
また、結果の長さを最小のリストに切り詰めることにも注意してください。
例えば:
>>> zip([1, 2], [3, 4, 5])
[(1, 3), (2, 4)]
これと戦うことができますitertools.izip_longest
(またはitertools.zip_longest
Python 3で)。
>>> import itertools
>>> list(itertools.izip_longest([1, 2], [3, 4, 5], fillvalue=0))
[(1, 3), (2, 4), (0, 5)]
これは、 を使用fillvalue
して空のギャップを埋めます。デフォルトでfillvalue
は、 に設定されていNone
ます。