Поиск и замена в «сгруппированном» списке - PullRequest
0 голосов
/ 01 апреля 2020

Есть ли способ найти и заменить списки, отсортированные по группам?

Сценарий:

my_list = [[1,5],[3,6],[-1,9]]

Я хочу заменить все значения 1 или 3 должен быть заменен на 11 так, чтобы вывод был:

my_list = [[11,5],[11,6],[-1,9]]

Я смог найти замену, создав 3 переменные и добавив их так, чтобы это был один большой список, однако я все еще хочу сохранить тот же форма, таким образом, мне интересно, как это сделать, пока он еще в этой форме?

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Альтернативой решению для понимания списка будет изменение исходного списка с помощью:

for group in my_list:
    for i, x in enumerate(group):
        if x in {1, 3}:
            group[i] = 11

Это будет наилучшим вариантом, если ваши списки содержат большое количество элементов.

0 голосов
/ 01 апреля 2020

Этого можно достичь с помощью понимания вложенного списка, такого как:

my_list = [[y if y not in [1, 3] else 11 for y in x] for x in my_list]

Это сохраняет структуру вложенного списка и заменяет любые 1 или 3 на 11. Выходные данные:

[[11, 5], [11, 6], [-1, 9]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...