Как запустить for l oop через определенную позицию индекса во вложенном списке? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть список, и я хотел знать, как получить доступ к / l oop через список в определенной позиции индекса. Причина, по которой я хочу это сделать, состоит в том, чтобы изменить только эти элементы в этой позиции. В этом примере позиция 1 - это имя клиента, а позиция 2 - возраст. Я хочу выполнить условие только для возраста клиента.

L = [['Sam', '35'],['John', '45'], ['Steve', '99']]
L = ['Group 1' if '35' in x else 'Group 2' if '45' in x else 'Group 3' for x in L]

Результат:

print(L)
L = ['Group 1', 'Group 2', 'Group 3']

То, что я действительно хочу:

print(L)
L = [['Sam', 'Group 1'],['John', 'Group 2'], ['Steve', 'Group 3']]

Ответы [ 4 ]

1 голос
/ 18 июня 2020

Хотя были опубликованы действительные ответы, часто, когда вы пишете несколько операторов if, может быть полезно использовать словарь в качестве поиска. Это можно легко расширить с помощью новых групп.

group_lookup = {'35': 'Group 1', '45': 'Group 2', '99': 'Group 3'}

L = [[x[0], group_lookup[x[1]]] for x in L]

print(L)
1 голос
/ 18 июня 2020

Можете попробовать

L = [[i[0], 'Group 1' if i[1] in '35' else 'Group 2' if '45' in i[1] else 'Group 3'] for i in L]

Вывод

[['Sam', 'Group 1'], ['John', 'Group 2'], ['Steve', 'Group 3']]
1 голос
/ 18 июня 2020

Вы можете просто добавить первый элемент обратно в ваши сгенерированные элементы:

L = [[x[0], 'Group 1' if '35' in x else 'Group 2' if '45' in x else 'Group 3'] for x in L]

Это даст вам желаемый результат

1 голос
/ 18 июня 2020

Вы можете попробовать что-то вроде этого:

  L = [['Sam', '35'],['John', '45'], ['Steve', '99']]
  L = [[x[0],'Group 1'] if '35' in x else [x[0],'Group 2'] if '45' in x else [x[0],'Group 3'] for x in L]
  print(L)

Вывод:

[['Sam', 'Group 1'],['John', 'Group 2'], ['Steve', 'Group 3']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...