Python的map与列表推导式
在比较这些代码时,你觉得哪一种更直观/更容易阅读呢?
>>> [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的方式有什么好处吗?
4 个回答
0
我会使用:[ord(i) for i in 'some string']
。使用带有lambda的map方法据说比使用列表推导式要慢很多。你可以看看这个链接:Python列表推导式与map的比较。我觉得第一个方法也更容易理解。
4
我更喜欢第一种写法,因为我更习惯这种方式。经常做函数式编程的人可能会更喜欢第二种写法,因为它更符合他们的思维方式。不过,第二种写法太复杂了。可以简化成
map(ord,'some string')
这样写要简单得多,读起来也更清晰,想表达的意思更明显。
5
我更喜欢第一个方法,这样做有个好处。你可以用
[ord(i) for i in 'some string']
来写
(ord(i) for i in 'some string')
,这样就能用生成器,而不是直接创建一个列表。在某些情况下,这样做非常不错。