繁体   English   中英

如何在Python中将元组变成整数(内部示例)?

[英]How to turn a tuple into an integer in Python (examples inside)?

我有一个元组列表:

“(1,2,3),(2,3,1)...”

我想将其更改为整数列表:

“ 123,231 ...”

我该怎么做呢? 提前致谢。

一种更实用的方法:

[reduce(lambda a, x: a * 10 + x, t) for t in tuples]

编辑:

只是为了好玩,一个针对JBernardo的回答的基准测试:

In [21]: %timeit [int(''.join(str(i) for i in t)) for t in tuples]
100000 loops, best of 3: 7.54 us per loop

In [22]: %timeit [reduce(lambda a, x: a * 10 + x, t) for t in tuples]
1000000 loops, best of 3: 1.55 us per loop

编辑2:

Akavall指出,我的原始答案仅在元组只包含一位整数时才有效。

如果这对于您的用例而言是不可接受的,那么JBernardo的答案可能是一种更简单的方法。 但是只是为了好玩:

[reduce(lambda a, x: a * 10**(len(str(x))) + x, t) for t in tuples]

或根本没有任何字符串转换:

from math import log10
[reduce(lambda a, x: a * 10**(int(log10(x))+1) + x, t) for t in tuples]

怎么样:

[int(''.join(str(i) for i in t)) for t in tuples]

不如@Luke的复杂

[sum(x * 10**i for i, x in enumerate(t[1][::-1])) for t in tuples]

就像x1 + x2 * 10 ^ 2 + ... + xN * 10 ^ n

[::-1] -反转元组,枚举以获得(xN,N)对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM