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%的时间)函数式编程?;)