Что лучше с точки зрения сложности - использовать функцию map () в Python или в понимании?

Как говорится в вопросе. map (f, iterable) может быть записан как [f (x) for x in iterable]. Что лучше использовать? И почему?

В качестве примера я хотел бы преобразовать список строк в int.

ip = (raw_input().split())
ip = [int(x) for x in ip]

or

ip = (raw_input().split())
ip = map(int, ip)

person varuponyou    schedule 14.03.2015    source источник
comment
Нашел ссылку: artima.com/weblogs/viewpost.jsp?thread=98196 где Гвидо ван Россум объясняет, почему он хотел исключить map, filter, lambda и reduce из языка.   -  person Tim Pietzcker    schedule 14.03.2015
comment
Когда вы говорите о сложности, вы имеете в виду концепцию информатики (нотация большого О)? Или вы имеете в виду сложность кода?   -  person Karl Knechtel    schedule 14.03.2015
comment
@KarlKnechtel Я имел в виду концепцию информатики!   -  person varuponyou    schedule 14.03.2015
comment
@TimPietzcker спасибо :)   -  person varuponyou    schedule 14.03.2015


Ответы (1)


map может быть микроскопически быстрее в некоторых случаях (когда вы НЕ делаете лямбда для этой цели, а используете ту же функцию в map и listcomp). В других случаях составление списков может быть быстрее, и большинство (не все) питонистов считают их более прямыми и ясными.

здесь более четко объяснено Python List Computing Vs. Карта

person chanakya gujju    schedule 14.03.2015
comment
Поскольку вы копируете только первый абзац ответа Алекса Мартелли, на который вы ссылаетесь, было бы более уместно предложить закрыть вопрос как дубликат. Не уверен, что вашей репутации достаточно для этого, поэтому я сделал это за вас. Спасибо, что нашли канонический ответ! - person Tim Pietzcker; 14.03.2015
comment
Я этого не знала, недавно здесь начала отвечать. Проверим это. Спасибо. - person chanakya gujju; 14.03.2015