Как получить подпоследовательность элементов в нескольких списках из списка списков? - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь получить подпоследовательность элементов между 2 списками в списке списков.Например, если у меня есть

list=[[1,2,3,4],[],[6,9],[2],[3],[4]]

, я хочу извлечь элементы в диапазоне от list[0][1] до list[2][1] в другой список.Этот результирующий список будет тогда [2,3,4,6] (игнорируя пустой список между ними). ​​

Как я могу это сделать?Я пытался использовать цикл for i in range(...), но он не работает для меня.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Попробуйте это:

def complex_slice(my_list, i, j, k):
    result = my_list[i][k:]
    for sub_list in my_list[ (i + 1) : (j - 1) ]:
        result.extend(sub_list)
    result.extend(my_list[j][:k])
    return result
0 голосов
/ 15 октября 2018

Если ваш список называется list_of_lists 1 , это понимание списка с использованием enumerate() работает:

[n for i, sub_list in enumerate(list_of_lists)
   for j, n in enumerate(sub_list)
   if (0, 1) <= (i, j) < (2, 1)]

1 Плохо было бы называть список list, как в вашем примере, потому что он маскирует имя типа list, которое вы затем надеваетене имеет доступа к.

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