int值的元组为字符串

时间:2014-12-22 09:48:45

标签: python type-conversion

我需要在Python中进行这样的转换:

(1, 0, 7, 2, 3, 8, 4, 6, 5)

'107238465'

怎么做?

2 个答案:

答案 0 :(得分:1)

最简单的方法应该是list comprehensiongenerator expression

t = (1, 2, 3, 4)    
''.join([str(a) for a in t])  # list comprehension

''.join(str(a) for a in t)  # generator expression

你需要列表理解或生成器表达式将数字转换为字符串,如果你有一个字符串元组你可以逃脱:

t = ('a', 'b', 'c')
''.join(t)

答案 1 :(得分:0)

这是@ georstef在我的电脑上回答的2/3时间

>>> str(reduce(lambda x, y: x * 10 + y, (1, 0, 7, 2, 3, 8, 4, 6, 5)))
'107238465'

下面比较了其他一些方法

timeit ''.join([str(a) for a in t])
100000 loops, best of 3: 2.94 us per loop

timeit ''.join(str(a) for a in t)
100000 loops, best of 3: 3.39 us per loop

timeit str(reduce(lambda x, y: x * 10 + y, t))
100000 loops, best of 3: 2.06 us per loop

timeit str(t)[1: -1].replace(", ", "")
100000 loops, best of 3: 1.8 us per loop

timeit str(t).translate(None, "(), ")
1000000 loops, best of 3: 1.6 us per loop