Python 将字符串的每个数字转换为int
所以我有一个字符串说“1234567”,我想要的端点是一个表[1,2,3,4,5,6,7]的列表 我现在正在做的是Python 将字符串的每个数字转换为int,python,string,list-comprehension,Python,String,List Comprehension,所以我有一个字符串说“1234567”,我想要的端点是一个表[1,2,3,4,5,6,7]的列表 我现在正在做的是 [int(x) for x in "1234567"] 我想知道的是,是否有更好或更像蟒蛇的方法来做到这一点?可能使用内置函数或标准库函数。一种方法是使用map地图(int,“1234567”)一种方法是使用地图映射(int,“1234567”)您可以使用映射功能: map(int, "1234567") 或范围: range(1,8) 带量程的结果将相同: >>
[int(x) for x in "1234567"]
我想知道的是,是否有更好或更像蟒蛇的方法来做到这一点?可能使用内置函数或标准库函数。一种方法是使用map<代码>地图(int,“1234567”)一种方法是使用地图<代码>映射(int,“1234567”)您可以使用
映射功能:
map(int, "1234567")
或范围
:
range(1,8)
带量程的结果将相同:
>>> map(int, "1234567")
[1, 2, 3, 4, 5, 6, 7]
>>> range(1,8)
[1, 2, 3, 4, 5, 6, 7]
您可以使用map
功能:
map(int, "1234567")
或范围
:
range(1,8)
带量程的结果将相同:
>>> map(int, "1234567")
[1, 2, 3, 4, 5, 6, 7]
>>> range(1,8)
[1, 2, 3, 4, 5, 6, 7]
没有什么比这更像蟒蛇的方法了。顺便说一句,你是喜欢地图理解还是列表理解是个人喜好的问题,但更多的人似乎更喜欢列表理解
但是,对于您正在执行的操作,如果这是在性能敏感的代码中,请从旧的汇编例程中获取一个页面,并改用dict,它将比int
更快,并且不会更复杂:
In [1]: %timeit [int(x) for x in '1234567']
100000 loops, best of 3: 4.69 µs per loop
In [2]: %timeit map(int, '1234567')
100000 loops, best of 3: 4.38 µs per loop
# Create a lookup dict for each digit, instead of using the builtin 'int'
In [5]: idict = dict(('%d'%x, x) for x in range(10))
# And then, for each digit, just look up in the dict.
In [6]: %timeit [idict[x] for x in '1234567']
1000000 loops, best of 3: 1.21 µs per loop
没有什么比这更像蟒蛇的方法了。顺便说一句,你是喜欢地图理解还是列表理解是个人喜好的问题,但更多的人似乎更喜欢列表理解
但是,对于您正在执行的操作,如果这是在性能敏感的代码中,请从旧的汇编例程中获取一个页面,并改用dict,它将比int
更快,并且不会更复杂:
In [1]: %timeit [int(x) for x in '1234567']
100000 loops, best of 3: 4.69 µs per loop
In [2]: %timeit map(int, '1234567')
100000 loops, best of 3: 4.38 µs per loop
# Create a lookup dict for each digit, instead of using the builtin 'int'
In [5]: idict = dict(('%d'%x, x) for x in range(10))
# And then, for each digit, just look up in the dict.
In [6]: %timeit [idict[x] for x in '1234567']
1000000 loops, best of 3: 1.21 µs per loop
map(int,“1234567”)
。。这是一个单行列表理解大声叫喊..如前所述,map
可以使用,但我认为它不是`更Pythonic'map(int,“1234567”)
你所做的是Pythonic够了。。这是一个一行的列表理解,可以大声叫喊。如前所述,map
可以使用,但我觉得它不是“更像蟒蛇”谢谢,map对我来说已经足够好了。我不能使用range,因为字符串是一个随机数,而不仅仅是升序模式。谢谢,map对我来说已经足够好了。我不能使用range,因为字符串是一个随机数,而不仅仅是升序模式。