pro*_*eek 5 python collections list
我有一个值列表和一个索引列表,我需要删除索引指向的元素.
这是我的解决方案,但我不喜欢实现,因为它需要导入包,当值包含maxint时不起作用,并多次迭代值.
def remove_abnormalities(values, indices):
v = list(values)
for i in indices:
v[i] = sys.maxint
return filter(lambda i: i != sys.maxint, v)
Run Code Online (Sandbox Code Playgroud)
更好的解决方案?
这应该工作:
def remove_abnormalities(values, indices):
return [val for i, val in enumerate(values) if i not in indices]
Run Code Online (Sandbox Code Playgroud)
此外indices,如果索引数量很大,您可以在过滤之前转换为集合,以获得更高的性能.