3

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言語でこれに関するヒントはありますか?

4

1 に答える 1

6

あなたは幸運です。なぜなら、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_longestPython 3で)。

>>> import itertools
>>> list(itertools.izip_longest([1, 2], [3, 4, 5], fillvalue=0))
[(1, 3), (2, 4), (0, 5)]

これは、 を使用fillvalueして空のギャップを埋めます。デフォルトでfillvalueは、 に設定されていNoneます。

于 2013-03-16T02:11:00.493 に答える