2013-12-09 3 views
0

У меня есть список U таких списков, что U=[a[1], a[2], a[3]] и где a = [[0,1,2], [0,0,0],[1,1,1]]. Я пытаюсь изменить U таким образом, что она будет содержать только списки без 2. Я знаю, что если я хочу U = [a[2], a[3]] я должен сделать это следующим образом:Как вернуть индекс списков в Python

for j in range (0,2): 
    U= [f for f in U if f[j]!=2] 

Но теперь я хочу, чтобы вернуться только индекс списков, я имею в виду, что в конце U должно быть [2,3]. Можно ли это сделать?

Спасибо за помощь!

ответ

2

Использование enumerate:

>>> a = [[0,1,2],[0,0,0],[1,1,1]] 
>>> [i for i, x in enumerate(a, 1) if 2 not in x] 
[2, 3] 
+0

Он отлично работает! – user3013792

2

Использование enumerate:

[i for i, j in enumerate(a) if 2 not in j] 

Обратите внимание, что список индексов в Python начинаются с 0, а не от 1

0

вы можете использовать индекс [U.index(l) for l in U if not 2 in l]

Смежные вопросы