Python 将像素后的子字符串中的元素求和,并将它们提升到二的幂

Python 将像素后的子字符串中的元素求和,并将它们提升到二的幂,python,dictionary,lambda,increment,dna-sequence,Python,Dictionary,Lambda,Increment,Dna Sequence,假设a有一个函数。函数接收一个字符串作为参数。 该函数是类函数之一。接收到字符串后,它会根据子字符串计算一些变量。 在这个过程的一部分中,我需要将key:value对附加到字典中。 这些值应该从前面提到的字符串的几个部分计算出来,但是后面的每个字符(在转换为int之后)都需要提升到2的特定幂。从0到子字符串的末尾,幂增加1。 恐怕我不知道如何解决提升到2的权力的激励部分: self.topologia = {} for i in range(0, 6): if i

假设a有一个函数。函数接收一个字符串作为参数。 该函数是类函数之一。接收到字符串后,它会根据子字符串计算一些变量。 在这个过程的一部分中,我需要将key:value对附加到字典中。 这些值应该从前面提到的字符串的几个部分计算出来,但是后面的每个字符(在转换为int之后)都需要提升到2的特定幂。从0到子字符串的末尾,幂增加1。 恐怕我不知道如何解决提升到2的权力的激励部分:

    self.topologia = {}
    for i in range(0, 6):
        if int(dna[17 + i * 8]) == 1:
            self.topologia[self.ile_warstw] = sum(list(map(lambda: x * Math.Pow(2, ?), int(dna[17 + i * 8:17 + i * 8 + 7]))))
            self.ile_warstw += 1
问号表示我无法解决的部分。 字符串仅由0和1组成

编辑-澄清目的:

我想做的是:
E=x1*2^0+x2*2^1+x3*2^2+x4*2^3+…+xn*2^(n-1)

如果我正确理解您的问题,您可以
枚举您的数据,然后将值和枚举都提供给lambda函数:

    self.topologia = {}
    for i in range(0, 6):
        if int(dna[17 + i * 8]) == 1:
            self.topologia[self.ile_warstw] = sum(list(map(lambda x: x[1] * math.pow(2, x[0]), enumerate(int(dna[17 + i * 8:17 + i * 8 + 7])))))        
            self.ile_warstw += 1

然后另一个替代的
math.pow(2,n)
1你可以做,
x**2
@如果我错了,FazilZaid会纠正我,但是x**2会将每个元素提升到2的幂次方一次:x1^2,x2^2,x3^2,我想做的是:x1*2^0,x2*2^1,x3*2^2,x4*2^3,…,xn*2^(n-1)
            self.topologia[self.ile_warstw] = sum(list(map(lambda x: x[1] * (1 << x[0]), enumerate(int(dna[17 + i * 8:17 + i * 8 + 7])))))