У меня есть 2 списка разной длины. Подарок выбирается и присваивается имени, затем следующий подарок присваивается следующему имени и так далее по кругу, пока подарки не будут закончены.
gifts = ['pencil', 'pen', 'book', 'notebook', 'pencil_box', 'schoolbag', 'stick']
name = ['John', 'Marcus', 'Marie']
Ожидаемый результат:
John: pencil notebook stick
Marcus: pen pencil_box
Marie: book schoolbag
Другой пример:
gifts = ['car', 'house', 'phone']
name = ['RichieRich']
Ожидаемый результат:
RichieRich: car house phone
Немного помощи?
2 ответа
Ну вот:
from itertools import cycle
from collections import defaultdict
gifts = ['pencil', 'pen', 'book', 'notebook', 'pencil_box', 'schoolbag', 'stick']
names = ['John', 'Marcus', 'Marie']
gifts_by_name = defaultdict(list)
for name, gift in zip(cycle(names), gifts):
gifts_by_name[name].append(gift)
for name in names:
print '%s: %s' % (name, " ".join(gifts_by_name[name]))
Это возможно с помощью цикла for:
count = 0
kids = [yourkids]
gifts = [yourgifts]
outputKids = kids
for gift in gifts:
if count > kids.length:
count = 0;
outputKids[count].push(gift)
count = count + 1
Затем просто сопоставьте ваш массив "kids" с вашими "outputKids" (по индексу), и вы получите подарки для каждого ребенка.
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.