比较这些时,您认为哪种更直观/更容易阅读?
>>> [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方式有什么好处吗?
答案 0 :(得分:5)
我更喜欢第一个,它有一个优势。你可以代替
[ord(i) for i in 'some string']
写
(ord(i) for i in 'some string')
并且有一个生成器而不是列表。在某些方面很棒。
答案 1 :(得分:4)
我更喜欢第一个,因为我更习惯它。进行大量函数式编程的人可能更喜欢第二种,因为它更适合它的思维方式。但第二个版本是复杂的。它可以简化为
map(ord,'some string')
更具可读性,使这个想法更加明显。
答案 2 :(得分:0)
我会使用:[ord(i) for i in 'some string']
。使用带有lambda的map应该比使用列表推导慢得多。见Python List Comprehension Vs. Map我认为第一个也更具可读性。
答案 3 :(得分:0)
这似乎已被问及并回答before