python:让列表元素在某个范围内

1 投票
3 回答
1307 浏览
提问于 2025-04-17 08:33

大家好,

如果我有一串浮点数(小数),我想把它们调整到0到2π的范围内,可以通过加或减2π来实现。有没有什么好的方法可以做到这一点呢?

非常感谢!

3 个回答

0

可以考虑使用 math.fmod(),因为它在处理浮点数的取余时,比 % 运算符更准确。详细讨论可以查看 这里

2

你可以把答案对2π取模:

>>> 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]
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]
>>> 

撰写回答