2

100*50ここで、 2 次元の点を含むリストを作成したいと考えています。私は次のことを試しました:

[(x+0.5, y+0.5) for x, y in zip(range(100), range(50))]

これは私に50 * 50ポイントしか与えません。指摘したこの回答で、これを説明する理由を見つけました

zip の場合、新しいリストの長さは最短リストの長さと同じです。

目的のポイントを正しく取得する最も Pythonicな方法は何ですか?100*50

4

5 に答える 5

3

これは追加の少ない方法です(5000と比較してわずか150)

>>> from itertools import product
>>> list(product(map(.5.__add__, range(100)), map(.5.__add__, range(50))))
[(0.5, 0.5), (0.5, 1.5), (0.5, 2.5), (0.5, 3.5), (0.5, 4.5), (0.5, 5.5), (0.5, 6.5), (0.5, 7.5), (0.5, 8.5), (0.5, 9.5),...
于 2013-10-16T05:33:26.770 に答える