[英]Retrieving perimeter points of point in Python list comprehension
給定p(y,x)
,我如何檢索偏移量為 1 [(y-1,x), (y+1,x+1), (y,x+1),(y+1,x+1), (y+1,x), (y-1,x-1), (y,x-1), (y-1,x-1)]
在 Python 的列表理解中?
|------------|----------|------------|
| (y-1, x-1) | (y-1,x) | (y-1, x+1) |
|------------|----------|------------|
| (y, x-1) | (y,x) | (y, x+1) |
|------------|----------|------------|
| (y+1, x-1) | (y+1, x) | (y+1, x+1) |
|------------|----------|------------|
只是為了好玩,使用復數:
[(round(z.imag), round(z.real))
for a in range(8)
for z in [complex(x, y) + 1j**(a/2)]]
對於dx
和dy
的合適值,周長點都是(x+dx, y+dy)
的形式。
那些合適的值是什么? 1
、 0
和-1
。
from itertools import product
pp = [(x+dx, y+dy) for dx, dy in product([-1, 0, 1], repeat=2]) if dx != 0 and dy != 0]
過濾器阻止您將(x,y)
本身添加到結果中(即,當dx == 0
和dy == 0
時)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.