100*50
ここで、 2 次元の点を含むリストを作成したいと考えています。私は次のことを試しました:
[(x+0.5, y+0.5) for x, y in zip(range(100), range(50))]
これは私に50 * 50ポイントしか与えません。指摘したこの回答で、これを説明する理由を見つけました
zip の場合、新しいリストの長さは最短リストの長さと同じです。
目的のポイントを正しく取得する最も Pythonicな方法は何ですか?100*50
これは追加の少ない方法です(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),...