我最近一直在玩弄列表理解,但我已经到了一个困惑的地步。目前我有这个:
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点的列表,然后用它来计算一个近似于圆的多边形的路径长度。在
谢谢
对于嵌套列表,请写入
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)
。在相关问题 更多 >
编程相关推荐