Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2010 03:32:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9962
Репутация: +  856  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

map(…)
да, по ходу третий питон выходит из этого дела, когда один из списков закончился
тогда как второй продолжает работать



Офлайн

#2 Ноя. 16, 2010 10:32:26

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

Для третьего Питона аналогом будет что-нибудь типа этого:

list(map(sum, itertools.zip_longest([1,2,3], [4,5], fillvalue=0)))
PS: для двойки >= 2.6 есть itertools.izip_longest



Отредактировано (Ноя. 16, 2010 10:42:56)

Офлайн

#3 Ноя. 16, 2010 14:10:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9962
Репутация: +  856  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

вот чуть ещё прояснил

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)))



Офлайн

#4 Ноя. 16, 2010 19:17:20

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

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 и ниже работать не будет.



Офлайн

#5 Ноя. 16, 2010 20:36:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9962
Репутация: +  856  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

Ed
А что такое python_v_3?
ну это типа вот это вот с try (типа True, False, не знал как написать)



Отредактировано (Ноя. 17, 2010 00:02:12)

Офлайн

#6 Ноя. 16, 2010 23:25:25

bgalina
От:
Зарегистрирован: 2010-10-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

я вам всем очень благодарна!:)



Офлайн

#7 Ноя. 18, 2010 03:03:04

Virtuos86
От:
Зарегистрирован: 2010-11-17
Сообщения: 33
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

NN:
>>> l

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

>>>



Офлайн

#8 Ноя. 18, 2010 11:58:13

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Вопросик про списки и циклы

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version