Creating 2D coordinates map in Python

后端 未结 3 1114
眼角桃花
眼角桃花 2020-12-31 08:21

I\'m not looking for solution, I\'m looking for a better solution or just a different way to do this by using some other kind of list comprehension or something else.

<
3条回答
  •  时光说笑
    2020-12-31 09:14

    The first solution is elegant, but you could also use a generator expression instead of a list comprehension:

    ((x, y) for x in range(width) for y in range(height))
    

    This might be more efficient, depending on what you're doing with the data, because it generates the values on the fly and doesn't store them anywhere.

    This also produces a generator; in either case, you have to use list to convert the data to a list.

    >>> list(itertools.product(range(5), range(5)))
    [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), 
     (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 0), 
     (3, 1), (3, 2), (3, 3), (3, 4), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]
    

    Note that if you're using Python 2, you should probably use xrange, but in Python 3, range is fine.

提交回复
热议问题