我想从[[1,2,3,4],[11,12,13]得到[[1,2,4],[11,12,14],[21,22,24]] ,14],[21,22,23,24]]。 什么是优雅的方式?
我真正的问题是100000 * 17 2d列表。感谢。
答案 0 :(得分:3)
一种方法是:
import numpy as np
np.array(lst)[:, (0, 1, 3)]
答案 1 :(得分:1)
一种直截了当的方式是:
rows = [[1, 2, 3, 4], [11, 12, 13, 14], [21, 22, 23, 24]]
print([[a, b, d] for a, b, c, d in rows])
或
print([[row[0], row[1], row[3]] for row in rows])
答案 2 :(得分:1)
一种简单的方法是弹出每个子列表的元素索引:
>>my_list = [[1,2,3,4], [11, 12, 13, 14], [21, 22, 23, 24]]
>>for i in my_list:
>> i.pop(2)
>> 3
>> 13
>> 23
>> print my_list
>> [[1, 2, 4], [11, 12, 14], [21, 22, 24]]
答案 3 :(得分:0)
您可以在Python3中使用解压缩:
s = [[1,2,3,4], [11, 12, 13, 14], [21, 22, 23, 24]]
new_s = [a+[b] for *a, _, b in s]
输出:
[[1, 2, 4], [11, 12, 14], [21, 22, 24]]
答案 4 :(得分:0)
试试
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(arr[:, (0,1,3,4)])
输出 [[ 1 2 4 5] [ 6 7 9 10]]