作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上我需要这样的行列表:
[0,0]
[1,0],[0,1]
[2,0],[1,1],[0,2]
[3,0],[2,1],[1,2],[0,3]
[4,0],[3,1],[2,2],[1,3],[0,4]
最多包含任意数量的元素,然后返回
[4,1],[3,2],[2,3],[1,4]
[4,2],[3,3],[2,4]
[4,3],[3,4]
[4,4]
我只想将所有这些对放在一个大列表中,这样我就可以按照它们在等距渲染中出现的顺序迭代这些对。
输出看起来像这样
[ [ (0,0) ], [ (1,0),(0,1) ], [ (2,0), (1,1), (0,2) ]....]etc
最佳答案
尚不完全清楚您正在寻找什么概括,但 IIUC 有很多方法可以做到这一点。一种是从前一个列表构建每个子列表(向每个子元素添加一个并避免重复),但另一种是直接根据算术进行计算:
def sherwood(n):
N = 2*n+1
for i in range(N):
low, high = max(0, i-n), min(i, n)
w = list(range(low, high+1))
yield zip(w[::-1], w)
给我
>>> out = list(sherwood(2))
>>> for x in out: print(x)
[(0, 0)]
[(1, 0), (0, 1)]
[(2, 0), (1, 1), (0, 2)]
[(2, 1), (1, 2)]
[(2, 2)]
>>> out = list(sherwood(4))
>>> for x in out: print(x)
[(0, 0)]
[(1, 0), (0, 1)]
[(2, 0), (1, 1), (0, 2)]
[(3, 0), (2, 1), (1, 2), (0, 3)]
[(4, 0), (3, 1), (2, 2), (1, 3), (0, 4)]
[(4, 1), (3, 2), (2, 3), (1, 4)]
[(4, 2), (3, 3), (2, 4)]
[(4, 3), (3, 4)]
[(4, 4)]
关于python - 需要一种巧妙的方法来为 pygame/pyOpenGL 项目创建一个大列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894489/
这适用于 ubuntu 16.04,但不适用于 17.10 + curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslog
我是一名优秀的程序员,十分优秀!