是否有更多的pythonic方式告诉列表哪个部分必须留在哪个部分必须删除?
[1,2,3,6,7]
通缉名单:
wl = li[:-4]+li[-2:]
我可以这样做:
li[:-4,-2:]
我正在寻找像remove
这样的东西(在一个陈述/命令中)
当然我可以做[3,4,5,6,7]
但它可以在很多情况下使用,例如:
通缉名单:
del li[0:2]
我可以li[2:]
但它更常见:
public void someMethod() {
synchronized(bar) {
// fully accessible before entering the other synchronized bar block
// but not afterwards
}
}
答案 0 :(得分:0)
除常规python列表外,NumPy arrays can be indexed by other sequence-like objects(除元组外)例如通过常规python列表或另一个NumPy数组。
import numpy as np
li = np.arange(1, 8)
# array([1, 2, 3, 4, 5, 6, 7])
wl = li[[0,1,2,5,6]]
# array([1, 2, 3, 6, 7])
当然,这使您现在遇到创建索引序列的问题(在此示例中为常规python列表[0,1,2,5,6]
),这会让您回到正方形。 (除非您需要在相同索引处访问多个NumPy数组,因此您只需创建一次该索引列表,然后重新使用它。)
如果你有其他理由一般使用NumPy或特别是NumPy数组,你应该只考虑这个。
答案 1 :(得分:-1)
如果您希望输出列表遵循某个逻辑,则可以使用过滤器功能。
filter(lambda x: x > 2, li)
或者
filter(lambda x: x < 4 or x > 5, li)