关于循环:Python映射与列表理解

Python map vs list comprehension

本问题已经有最佳答案,请猛点这里访问。

当比较这些时,你认为哪个更直观/更容易阅读?

1
2
3
4
5
>>> [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方式有什么好处吗?


我更喜欢第一个,这是有好处的。你可以代替

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

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

并且有一个生成器而不是一个列表。在某些方面很好。


我更喜欢第一个,因为我更习惯。做很多函数式编程的人可能更喜欢第二个,因为它更适合它的思维方式。但是第二个版本是非常复杂的。它可以减少到

1
map(ord,'some string')

更具可读性,使想法更为明显。


这似乎是以前问过和回答过的


我会用:[ord(i) for i in 'some string']。在lambda中使用map比使用list理解要慢得多。参见python列表理解与map,我认为第一个也是更易读的。