#python #python-3.x
#python #python-3.x
Вопрос:
Я пытаюсь выполнить итерацию по списку, чтобы разделить его на новые списки, с элементами, последовательно назначенными, как показано ниже, с добавлением первого элемента List1
, второго добавленного к List2
и так далее, затем снова начиная с List1
пятого элемента, List2
для шестого элемента и так далее.
Существующий список:
main_list = ['apples', 'oranges', 'bananas', 'mangoes', 'kiwis', 'grapes', 'watermelon', 'tangerines', 'plums', 'dragonfruit']
Вот что я хочу:
list1 = ['apples', 'kiwis', 'plums']
list2 = ['oranges', 'grapes', 'dragonfruit']
list3 = ['bananas', 'watermelon']
list4 = ['mangoes', 'tangerines']
Я уверен, что меня спрашивали в другом месте, но, похоже, я не могу его отследить.
Ответ №1:
Нарежьте список, чтобы получить желаемые результаты для каждой цели:
list1 = main_list[::4]
list2 = main_list[1::4]
list3 = main_list[2::4]
list4 = main_list[3::4]
Ответ №2:
Для чего-то более динамичного и поддерживающего n-количество списков, вы можете использовать itertools.cycle
main_list = ['apples', 'oranges', 'bananas', 'mangoes', 'kiwis', 'grapes', 'watermelon', 'tangerines', 'plums',
'dragonfruit']
number_of_lists = 4
lists = [[] for _ in range(number_of_lists)]
cycler = cycle(lists)
for ml in main_list:
next(cycler).append(ml)
for l in lists:
print(l)
>>> ['apples', 'kiwis', 'plums']
>>> ['oranges', 'grapes', 'dragonfruit']
>>> ['bananas', 'watermelon']
>>> ['mangoes', 'tangerines']