Найти - Пользователи
Полная версия: Вопросик про списки и циклы
Начало » Python для новичков » Вопросик про списки и циклы
1 2
py.user.next
map(…)
да, по ходу третий питон выходит из этого дела, когда один из списков закончился
тогда как второй продолжает работать
Ed
Для третьего Питона аналогом будет что-нибудь типа этого:
list(map(sum, itertools.zip_longest([1,2,3], [4,5], fillvalue=0)))
PS: для двойки >= 2.6 есть itertools.izip_longest
py.user.next
вот чуть ещё прояснил
def sum_list_elements(la, lb):
"""Сложить списки одинаковой или разной длины поэлементно."""
shortest, longest = la, lb
if len(shortest) > len(longest):
shortest, longest = longest, shortest
shortest_extended = shortest + [0] * (len(longest) - len(shortest))
return [i + j for i, j in zip(shortest_extended, longest)]
с itertools.zip_longest можно делать
import itertools

if python_v_3:
zip_extended = itertools.zip_longest
elif python_v_2:
zip_extended = itertools.izip_longest

list(map(sum, zip_extended(la, lb, fillvalue=0)))
Ed
py.user.next
с itertools.zip_longest можно делать
if python_v_3:
А что такое python_v_3?
По-моему проще как-нибудь так:
try:
from itertools import izip_longest as zip_longest
except ImportError:
from itertools import zip_longest
Только в 2.5 и ниже работать не будет.
py.user.next
Ed
А что такое python_v_3?
ну это типа вот это вот с try (типа True, False, не знал как написать)
bgalina
я вам всем очень благодарна!:)
Virtuos86
NN:
>>> l

>>> l.extend(l.pop(0) for i in xrange(3))
>>> l

>>>
Ed
Virtuos86
>>> l.extend(l.pop(0) for i in xrange(3))
l, l = l, l
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB