我试图将Python中的整数列表转换为单个整数,例如[1,2,3,4]
到1234
(整数)。在我的函数中,我使用以下代码:
L = [1,2,3,4]
b = int(''.join(map(str, L)))
return b
编译器抛出ValueError
。为什么这样?如何纠正这个问题?
答案 0 :(得分:1)
如果这会导致问题,你也可以这样做:
L = [1,2,3,4]
maxR = len(L) -1
res = 0
for n in L:
res += n * 10 ** maxR
maxR -= 1
print(res)
1234
答案 1 :(得分:0)
另一个解决方案是
L = [1,2,3,4]
digitsCounter = 1
def digits(num):
global digitsCounter
num *= digitsCounter
digitsCounter *= 10
return num
sum(map(digits, L[::-1]))
digits()
是一个非纯函数,它接受一个数字,并根据每次迭代中调用数字的迭代次数将其放在位置值
1. digits(4) = 4 1st iteration
2. digits(4) = 40 2nd iteration
3. digits(4) = 400 3rd iteration
当我们总结由倒置列表L [:: - 1]中的map返回的数组时,我们得到1234,因为数组中的每个数字都被提升到它的位置值 如果我们选择不反转L数组到L [:: - 1]那么我们需要我们的数字函数来做更多来计算列表中每个数字的位值,所以我们用它来获取语言特征