繁体   English   中英

Python map 与列表理解 [重复]

[英]Python map vs list comprehension [duplicate]

这个问题在这里已经有了答案:

在比较这些时,您认为哪个更直观/更易于阅读?

>>> [ord(i) for i in 'some string']
[115, 111, 109, 101, 32, 115, 116, 114, 105, 110, 103]

>>> map(ord,'some string')
[115, 111, 109, 101, 32, 115, 116, 114, 105, 110, 103]

lambda/map 方式有什么好处吗?

我更喜欢第一个,它有一个优势。 你可以代替

[ord(i) for i in 'some string']

(ord(i) for i in 'some string')

并有一个生成器而不是列出一个列表。 在某些情况下很棒。

我更喜欢第一个,因为我更习惯了。 做很多函数式编程的人可能更喜欢第二种,因为它更适合它的思维定势。 但是第二个版本太复杂了。 它可以简化为

map(ord,'some string')

这更具可读性,并使想法更加明显。

我会使用: [ord(i) for i in 'some string'] 使用 map 和 lambda 据说比使用列表推导要慢得多。 参见Python 列表理解对比。 Map在我看来,第一个也更具可读性。

这似乎已经被问过并回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM