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

时间:2013-12-29 16:24:10

标签: python python-2.7

我想将列表(例如[1,0,1,0])转换为数字1010(类型int)。此外,我想在一个函数中执行它,所以不使用return。有可能,我该怎么办?

4 个答案:

答案 0 :(得分:5)

def convert_list_of_ints_to_int( lst ):
   return reduce(lambda x, y: x*10 + y, lst)

答案 1 :(得分:1)

我会推荐

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

答案 2 :(得分:1)

恕我直言,@ JonClements的评论显然是最凶悍的答案:

int(''.join(map(str, some_list)))

虽然我使用的是生成器理解,通常优于map,并且更具可读性:

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

答案 3 :(得分:0)

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

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