Если я понимаю вашу строку «Результатом будет комбинация каждого элемента в каждом списке: каждому человеку нравятся все фрукты, занимаясь каждым хобби», вам нужна любая возможная комбинация.Вы можете сделать это способом вложенного цикла:
names = ['tom','mary','jessica','john']
fruits = ['oranges','apples','grapes','bananas']
hobbies = ['dancing','sitting','bicycling','watching tv']
for name in names:
for fruit in fruits:
for hobby in hobbies:
print '%(name)s likes to eat %(fruit)s while %(hobby)s' % {'name':name, 'fruit':fruit, 'hobby':hobby}
, который выдает
tom likes to eat oranges while dancing
tom likes to eat oranges while sitting
tom likes to eat oranges while bicycling
tom likes to eat oranges while watching tv
tom likes to eat apples while dancing
[etc.]
john likes to eat bananas while bicycling
john likes to eat bananas while watching tv
, или вы можете использовать модуль itertools, который имеет функцию product
, которая дает вам все возможныекомбинация списков ввода:
import itertools
for name, fruit, hobby in itertools.product(names, fruits, hobbies):
print '%(name)s likes to eat %(fruit)s while %(hobby)s' % {'name':name, 'fruit':fruit, 'hobby':hobby}