簡體   English   中英

在 Python 列表理解中檢索點的周長點

[英]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)]]

對於dxdy的合適值,周長點都是(x+dx, y+dy)的形式。

那些合適的值是什么? 10-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 == 0dy == 0時)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM