双重列表理解

2024-09-25 06:38:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近一直在玩弄列表理解,但我已经到了一个困惑的地步。目前我有这个:

k = range(2,11)
N = [2**k[u] for u in range(9)]
i = [range(N[v] + 1) for v in range(9)]

xCoord = [0.5*math.cos((2*(math.pi)*i[n][j])/N[n]) for n in range(9) for j in range(len(i[n])]

这给了我一个常规列表,而不是一个嵌套列表,这正是我想要的。我想要一个嵌套列表,每个N值都有一个列表

为了澄清一下,假设我的N=4,我想生成一个包含I=0,1,2,3,4的点的x坐标的列表。对于N=8,i=0、1、2、3、4、5、6、7、8。等等

我要做的是沿着半径为1/2的圆列一个N+1点的列表,然后用它来计算一个近似于圆的多边形的路径长度。在

谢谢


Tags: in路径列表forlenpi半径range
1条回答
网友
1楼 · 发布于 2024-09-25 06:38:05

对于嵌套列表,请写入

xCoord = [[0.5*math.cos((2*(math.pi)*i[n][j])/N[n]) for j in range(len(i[n])] for n in range(9)]

注意添加的[]。我还颠倒了顺序,因为j的范围取决于n:在内在理解中,n是一个常量(由外部理解设置)。在

如果您只想近似圆的周长值,有更有效的方法:首先,您不必存储所有列表,只有“当前”列表,才能计算长度。你甚至不需要一个列表,因为有一个公式可以得到长度:对于n点和半径R,圆内接的正多边形的周长只是(在Python语法中):2*n*R*math.sin(math.pi/n)。在

相关问题 更多 >