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