python:使列表的元素在一定范围内

时间:2011-12-17 16:35:25

标签: python list

人,

如果我有浮动列表,我想通过增加或减去2pi来使它们在0到2pi的范围内。有什么好办法吗?

非常感谢。

3 个答案:

答案 0 :(得分:3)

使用%运算符:

>>> pi = 3.1415

>>> angle = 2*pi+0.5
>>> angle % (2*pi)
0.5

>>> angle = -4*pi + 0.5
>>> angle % (2*pi)
0.5

对于角度列表,只需使用列表推导:

>>> L = [2*pi + 0.5, 4*pi + 0.6]
>>> [i % (2*pi) for i in L]
[0.5, 0.5999999999999996]
>>> 

答案 1 :(得分:2)

你可以采取mod 2 pi的答案:

>>> import random
>>> from math import pi
>>> xx = list(random.uniform(-10,10) for i in range(4))
>>> xx
[-3.652068894375777, -6.357128588604748, 9.896564215080154, -6.298659336390939]
>>> yy = list(x % (2*pi) for x in xx)
>>> yy
[2.6311164128038094, 6.209242025754424, 3.613378907900568, 6.267711277968234]

答案 2 :(得分:0)

考虑使用math.fmod(),因为它比%运算符更好地处理浮点数的舍入。请参阅讨论here