我该如何在 Python 3
中将列表中每个数的指数幂值相加?
示例:
[3, 0, 2] = 3^1 + 0^2 + 2^3 = 11
这个想法是为列表中任意可能的非负数组合创建一个唯一的索引。这样,我可以使用该列表计算某物的索引。
编辑:虽然问题已经得到了回答,但我刚意识到该方法并没有为列表中任意组合的非负整数创建唯一的索引。为了做到这一点,可以假设a
是可能整数的数量,并且基于接受的答案进行操作。
sum(a ** i * j for i,j in enumerate(l, 0))
这个想法是,每个数字都将指数按其在列表中的位置成比例指数增加。假设 a=4
(从 0
到 3
),上述示例变为:
[3, 0, 2] = 4^0*3 + 4^1*0 + 4^2^2 = 35
索引范围为0
到4^3-1=63
。
enumerate(list, 0)
是不必要的 :-) 默认情况下,enumerate(list)
从0
开始索引。 - Dimitris Fasarakis Hilliard