Python 从一个列表中获取特定索引并从另一个列表中删除的快速方法
从一个列表中获取特定索引并从另一个列表中删除的最快方法是什么Python 从一个列表中获取特定索引并从另一个列表中删除的快速方法,python,list,indexing,Python,List,Indexing,从一个列表中获取特定索引并从另一个列表中删除的最快方法是什么 a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] b = [nan, 'gfdg', 54.0, nan, 54.0, nan, 'wre', nan, 54, nan] 我希望从列表“b”中删除nan,并从列表“a”中删除类似索引,以便预期结果应为: a = ['b', 'c', 'e', 'g', 'i' ] b = ['gfdg', 54.0, 54.0, 'w
a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
b = [nan, 'gfdg', 54.0, nan, 54.0, nan, 'wre', nan, 54, nan]
我希望从列表“b”中删除nan,并从列表“a”中删除类似索引,以便预期结果应为:
a = ['b', 'c', 'e', 'g', 'i' ]
b = ['gfdg', 54.0, 54.0, 'wre', 54]
您可以尝试:
a,b = zip(*(t for t in zip(a,b) if t[1] != nan))
如果您想要列表而不是元组,请在之后使用a=list(a)
和b=list(b)
您可以使用
列表理解
来执行此操作,例如:
a = [a[i] for i in range(len(b)) if b[i] != nan]
b = [x for x in b if x != nan]
输出:
>>> a
['b', 'c', 'e', 'g', 'i']
>>> b
['gfdg', 54.0, 54.0, 'wre', 54]
>>> a
['b', 'c', 'e', 'g', 'i']
>>> b
['gfdg', 54.0, 54.0, 'wre', 54]