Удалить все элементы в списке, кроме двух или трех - PullRequest
0 голосов
/ 14 февраля 2020

Если у меня есть этот список

 [['GA', 11], ['GO', 25], ['GE', 23], ['DA', 22], ['DE', 33], ['DU', 54], ['DD', 55], ['DF', 27]

Учитывая этот пример краткого списка по сравнению со списком из 500 элементов, как я могу удалить все элементы из этого списка, кроме GA, GO?

Ответы [ 4 ]

1 голос
/ 14 февраля 2020
l2 = [e for e in l if e[0] in ('GA','GO')]

Или

l2 = []
for e in l:
  if e[0] in ('GA', 'GO'):
    l2.append(e)

Обратите также внимание, что вы не хотите изменять список при переборе, создайте новый список (l2).

1 голос
/ 14 февраля 2020
data = [['GA', 11], ['GO', 25], ['GE', 23], ['DA', 22], ['DE', 33], ['DU', 54], ['DD', 55], ['DF', 27]]

result = [x for x in data if x[0] == 'GA' or x[0] == 'GO']

Выход:

[['GA', 11], ['GO', 25]]
1 голос
/ 14 февраля 2020

Используйте наборы для поиска

[i for i in [['GA', 11], ['GO', 25], ['GE', 23], ['DA', 22], ['DE', 33], ['DU', 54], ['DD', 55], ['DF', 27]] if i[0] in {'GA','GO'}]

Вывод

[['GA', 11], ['GO', 25]]
1 голос
/ 14 февраля 2020
l = [['GA', 11], ['GO', 25], ['GE', 23], ['DA', 22], ['DE', 33], ['DU', 54], ['DD', 55], ['DF', 27]] 
l = [item for item in l if item[0] in ['GA', 'GO']]

Это понимание списка с условием. Есть много уроков, это очень полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...