Python 将列表转换为由其元素组成的数字

Python 将列表转换为由其元素组成的数字,python,python-2.7,Python,Python 2.7,我想将列表,例如[1,0,1,0]转换为数字1010(键入int)。此外,我希望在函数中执行此操作,因此不使用return。有可能吗?我怎么做 我推荐 def concat_list(inlist): return sum(10**pwr*elem for pwr, elem in enumerate(inlist[::-1])) 冗长的 def concat_list(inlist): res = inlist[0] for elem in inlist[1:]:

我想将列表,例如
[1,0,1,0]
转换为数字
1010
(键入
int
)。此外,我希望在函数中执行此操作,因此不使用
return
。有可能吗?我怎么做

我推荐

def concat_list(inlist):
    return sum(10**pwr*elem for pwr, elem in enumerate(inlist[::-1]))
冗长的

def concat_list(inlist):
    res = inlist[0]
    for elem in inlist[1:]:
        res=res*10+elem
    return res
我推荐

def concat_list(inlist):
    return sum(10**pwr*elem for pwr, elem in enumerate(inlist[::-1]))
冗长的

def concat_list(inlist):
    res = inlist[0]
    for elem in inlist[1:]:
        res=res*10+elem
    return res

伊姆霍,@JonClements的评论显然是最具python风格的答案:

int(''.join(map(str, some_list)))
虽然我会使用生成器理解,它通常比
map
更可取,并且可读性更强:

int(''.join( str(num) for num in some_list ))

伊姆霍,@JonClements的评论显然是最具python风格的答案:

int(''.join(map(str, some_list)))
虽然我会使用生成器理解,它通常比
map
更可取,并且可读性更强:

int(''.join( str(num) for num in some_list ))

下面是另一个解决方案,使用
numpy
。我并不认为它比其他任何答案都好,但我觉得它很酷

a = [1,0,1,0]
( a * 10**numpy.arange(len(a))[::-1] ).sum()
=> 1010

下面是另一个解决方案,使用
numpy
。我并不认为它比其他任何答案都好,但我觉得它很酷

a = [1,0,1,0]
( a * 10**numpy.arange(len(a))[::-1] ).sum()
=> 1010

+1非常酷地使用reduce/lambda(占用99%的时间)函数式编程?;)+1非常酷地使用reduce/lambda(占用99%的时间)函数式编程?;)