python列表删除算法_python – 同时从多个列表中删除元素

我有三个具有相同长度的列表和另一个列表,用于存储我需要从所有三个列表中删除的元素的索引.这是我的意思的一个例子:

a = [3,4,5,12,6,8,78,5,6]

b = [6,4,1,2,8,784,43,6,2]

c = [8,4,32,6,1,7,2,9,23]

(都有len()= 9)

另一个列表包含我需要从所有三个列表中删除的元素的索引:

d = [8,5,3]

(请注意,它已经排序)

我知道我可以从三个列表中删除一个元素:

for indx in d:

del a[indx]

del b[indx]

del c[indx]

我怎么能在一行中做到这一点?

最佳答案 如果你的三个列表是2D numpy.array删除指定的列,那么numpy对于这样的东西很有用.

a = [3,4,5,12,6,8,78,5,6]

b = [6,4,1,2,8,784,43,6,2]

c = [8,4,32,6,1,7,2,9,23]

big_array = np.array([a,b,c])

d = [8,5,3]

结果:

>>> big_array

array([[ 3, 4, 5, 12, 6, 8, 78, 5, 6],

[ 6, 4, 1, 2, 8, 784, 43, 6, 2],

[ 8, 4, 32, 6, 1, 7, 2, 9, 23]])

>>> np.delete(big_array, d, axis=1)

array([[ 3, 4, 5, 6, 78, 5],

[ 6, 4, 1, 8, 43, 6],

[ 8, 4, 32, 1, 2, 9]])


版权声明:本文为weixin_32737183原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。