我有一个类似以下的列表:
test = [['hi', 'hi2'], ['bye', 'bye2', 'by3']]
,并希望基于其中具有所需索引的另一个列表列表对其进行子集处理:
indices = [[0], [0, 2]]
对于常规值列表和索引列表,很容易做到:
[1d_list[i] for i in 1d_indices]
因此,我对此列表列表进行了类似的尝试,但是它不起作用
[[[t[i] for i in ii] for t in test] for ii in indices]
请问出什么问题了吗?
此部分所需的输出是
test_out = [['hi'], ['bye', 'by3']]
此外,如何选择indices
中的确切逆数?
例如,所需的输出将是:
test_out_2 = [['hi2'], ['bye2']]
谢谢! 杰克
答案 0 :(得分:2)
您可以将zip
与enumerate
一起使用:
test = [['hi', 'hi2'], ['bye', 'bye2', 'by3']]
indices = [[0], [0, 2]]
new_test = [[a for i, a in enumerate(c) if i in b] for c, b in zip(test, indices)]
输出:
[['hi'], ['bye', 'by3']]