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