将picewise后的子串中的元素相加,使其上升到p

2024-04-25 13:15:26 发布

您现在位置:Python中文网/ 问答频道 /正文

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

    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)


Tags: 函数字符串inselffor参数过程字符
1条回答
网友
1楼 · 发布于 2024-04-25 13:15:26

如果我正确理解您的问题,您可以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])))))

相关问题 更多 >