将子串中的元素分段升至 2 的幂后求和
Sum elements from substring after picewise rising them to power of two
假设有一个函数。该函数接收一个字符串作为参数。
该函数是 class 函数之一。在接收到一个字符串后,它会根据子字符串计算一些变量。
在该过程的一部分中,我需要将 key:value 对附加到字典中。
这些值应该从提到的字符串的几个部分计算出来,但是每个后面的字符都需要(在转换为 int 之后)被提升到 2 的特定幂。从 0 到子字符串末尾,幂次增加 1。
恐怕我不知道如何解决提升到二次方的强化部分:
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)
如果我对你的问题的理解正确,你可以 enumerate
你的数据,然后将值和枚举都提供给你的 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 << n
给出以下代码:
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])))))
假设有一个函数。该函数接收一个字符串作为参数。 该函数是 class 函数之一。在接收到一个字符串后,它会根据子字符串计算一些变量。 在该过程的一部分中,我需要将 key:value 对附加到字典中。 这些值应该从提到的字符串的几个部分计算出来,但是每个后面的字符都需要(在转换为 int 之后)被提升到 2 的特定幂。从 0 到子字符串末尾,幂次增加 1。 恐怕我不知道如何解决提升到二次方的强化部分:
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)
如果我对你的问题的理解正确,你可以 enumerate
你的数据,然后将值和枚举都提供给你的 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 << n
给出以下代码:
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])))))