一个小例子。我有两个带有数字的列表,ra
和dec
。我有第三个列表,也有一些数字quad
。
我要做的是删除ra
中的dec
和quad
的值。
>>> ra = [1,1,1,2,3,4,5,6,7,8]
>>> dec = [1,2,3,4,5,6,7,7,7,7]
>>> quad = [1,2,3,1,2,3]
>>> new_ra = []
>>> new_dec = []
>>> for a,b in zip(ra,dec):
if ((a not in quad) & (b not in quad)):
new_ra.append(a)
new_dec.append(b)
所以你会期待:
new_ra = [4,5,6,7,8]
和
new_dec = [4,5,6,7,7,7]
然而,我得到了:
new_ra = [4,5,6,7,8]
正如所料,但是,
new_dec = [6,7,7,7,7]
为什么会这样?我的循环出了什么问题?
P.S。我遵循与THIS QUESTION中相同的方法,但我的第二个列表没有给出正确答案。
答案 0 :(得分:1)
为什么不使用简单的列表理解?
new_ra = [v for v in ra if v not in quad]
new_dec = [v for v in dec if v not in quad]