寻找一个片段将字符串转换为整数列表

时间:2011-06-21 04:14:42

标签: python

举个例子:

>> s = '0123456' 
>> list(s)
['0', '1', '2', '3', '4', '5', '6']

我想出了这个:

>> map( lambda x:int(x), list(s) )
[0, 1, 2, 3, 4, 5, 6]

可以改进吗?

3 个答案:

答案 0 :(得分:8)

只需使用列表推导,或者使用生成器表达式。简单,快一点(可以说)更具可读性。

[int(x) for x in s]

答案 1 :(得分:6)

>>> map(int, ['1', '2'])
[1, 2]

>>> map(int, '123')
[1, 2, 3]

答案 2 :(得分:2)

你的方法没有真的错误,除了没有必要将字符串转换成列表,因为字符串是可迭代的。

>>> s = '0123456' 
>>> map(lambda x:int(x), s)
[0, 1, 2, 3, 4, 5, 6]

如果您更喜欢list comprehension / iterator,请参阅@zeekay's answer。