@igorekishev

Формирование вложенных в список списков из других списков по определенным правилам?

Добрый день,
есть три списка
allIndex_A = [1, 2, 8, 12, 17, 21, 23, 29]
allIndex_B = [3, 5, 7, 9, 11, 13, 15, 18, 20, 22, 24, 26, 28, 30]
allIndex_C = [4, 6, 10, 14, 16, 19, 25, 27]

нужно из них сделать список со вложенными списками, вот такой:
newList = [[1,3,4], [2,3,4], [8,9,10], [12,13,14], ...]

Первый элемент вложенного списка это первый это первый элемент списка allIndex_A.
Второй элемент это первый элемент из списка allIndex_В, значение которого больше значения первого элемента из вложенного списка.
Третий элемент это также первый найденный элемент из списка allIndex_С, значение которого больше первого элемента во вложенном списке.

Первый элемент второго вложенного списка это второй элемент из списка allIndex_A.
Второй и третий элемент второго вложенного списка находятся по таким же условиям как и в первом вложенном списке. То есть это должен быть первый найденный элемент из списков allIndex_В и allIndex_С, значение которого больше значения первого элемента.

Пример получившегося списка newList выше.
Начал изучать программирование недавно, многих вещей еще не знаю. Буду благодарен, если кто-то объяснит как сделать то, что мне нужно или хотя-бы даст ссылку где можно почитать на тему вопроса.
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
bobrovskyserg
@bobrovskyserg
allIndex_A = [1, 2, 8, 12, 17, 21, 23, 29]
allIndex_B = [3, 5, 7, 9, 11, 13, 15, 18, 20, 22, 24, 26, 28, 30]
allIndex_C = [4, 6, 10, 14, 16, 19, 25, 27]

ita, itb, itc = iter(allIndex_A), iter(allIndex_B), iter(allIndex_C)
b = c = allIndex_A[0]
newList = []
try:
    while True:
        a = next(ita)
        while b <= a:
            b = next(itb)
        while c <= a:
            c = next(itc)
        newList.append([a, b, c])
except StopIteration:
    print(newList)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы