我知道这是一个简单的问题,但我无法让它工作。我有一个Angular 列表,我需要它们小于360度。我如何编写一个循环,如果Angular 大于360,将减去360?我尝试:
for i in theta_degrees: while i>360: i -= 360
但不知道什么原因没起作用。
8nuwlpux1#
要就地替换值,需要就地替换值,而不是将其复制到另一个变量:
for i in range(len(theta_degrees)): while theta_degrees[i] > 360: theta_degrees[i] -= 360
或者你可以使用一个更短、更快、更实用的方法,使用列表解析和模运算符:
theta_degrees = [i % 360 for i in theta_degrees]
或者如果theta_degrees是一个生成器(或者一个很长的列表),你可以使用一个生成器表达式来实现惰性求值:
theta_degrees = (i % 360 for i in theta_degrees)
kgsdhlau2#
使用列表解析和模运算符(而不是while循环)可以更容易地做到这一点。
while
theta_degrees = [ i%360 for i in theta_degrees ]
eblbsuwk3#
如果您使用的是Numpy数组,则也应该可以执行以下操作:
a[a >= 360] -=360
3条答案
按热度按时间8nuwlpux1#
要就地替换值,需要就地替换值,而不是将其复制到另一个变量:
或者你可以使用一个更短、更快、更实用的方法,使用列表解析和模运算符:
或者如果theta_degrees是一个生成器(或者一个很长的列表),你可以使用一个生成器表达式来实现惰性求值:
kgsdhlau2#
使用列表解析和模运算符(而不是
while
循环)可以更容易地做到这一点。eblbsuwk3#
如果您使用的是Numpy数组,则也应该可以执行以下操作: