Форум сайта python.su
Добрый день!
Нужно помощь с циклом.
Допустим есть два списки:
и
Необходимо написать цикл, который бы поочередно подставлял в формулу с двумя аргументами значения из списков, как бы сравнивая их.
1 6
1 7
1 8
…
2 6
2 7
…
3 6
3 7
И так далее
Только начинаю учить python и пока не справляюсь с такими задачами.
Буду благодарна за помощь
Офлайн
Используй тег code, иначе списки стираются движком форума.
Пример
[code python]
print('Hello')
[/code]
Отредактировано py.user.next (Апрель 17, 2021 08:28:55)
Офлайн
dsafal
в формулу с двумя аргументами
for i,j in zip(list0,list1): compare(i,j)
Офлайн
В приличных языках для этого есть функция zipWith, но поскольку “Должен существовать один и, желательно, только один очевидный способ сделать это” в python-е для этой цели используется функция map (если что это был сарказм).
>>> s1 = [0,1,2,3] >>> s2 = [0,1,2,100] >>> map(lambda x,y: x==y, s1, s2) [True, True, True, False]
Отредактировано Rodegast (Апрель 17, 2021 13:45:50)
Офлайн
Спасибо всем за ответы!
А не подскажите ещё, как справится с тем, что длина списков разная?
Офлайн
dsafal
А не подскажите ещё, как справится с тем, что длина списков разная?
Офлайн
dsafalЕсли zip() подошёл, то itertools.zip_longest() надо брать.
А не подскажите ещё, как справится с тем, что длина списков разная?
>>> import itertools >>> >>> list(itertools.zip_longest('abc', '12')) [('a', '1'), ('b', '2'), ('c', None)] >>>
Отредактировано py.user.next (Апрель 19, 2021 22:24:55)
Офлайн