索引列表中要根据相应索引更改的特定值

2024-06-16 08:38:26 发布

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

我从前面的函数中得到了两个数组

ALPt = (90, -70, 90)
N = [1, 2, 1]

我已经定义了一个新函数来对N中的每个元素进行操作,但是我想根据ALPt中对应元素的符号设置一个条件 我试过几种不同的方法,这是我最接近的方法

def ALPe(): 
    ALPe = []
    for i in N:
        ALPe0 = math.degrees(math.acos((i * Bt) / (math.pi * Dk)))
        ALPe.append(ALPe0)
    for n, j in enumerate(ALPe):
        for m, k in enumerate(ALPt):
            if k < 0:
                ALPe[n] = j * -1
    return ALPe

ALPe = ALPe()
print(ALPe)

输出:

[-80.8421504880813, -71.43925528310385, -80.8421504880813]

我遗漏了一些内容,这些内容基于ALPt中的m元素更改ALPe中n元素的符号,这将使输出如下所示:

[80.8421504880813, -71.43925528310385, 80.8421504880813]

有什么建议吗


Tags: 方法函数in元素内容for定义符号
1条回答
网友
1楼 · 发布于 2024-06-16 08:38:26

看看:

So each element in ALPe should have the same sign as the element in ALPt at the same position? – glibdud 1 hour ago

that is the goal – chic9009

这就是我们想要的吗

a = [1.0, -2.0, -3.0, 4]
b = [4, -3, 2 , -1.0]

[abs(a)*((-1)**(b < 0)) for a, b in zip(a,b)]

Out[41]: [1.0, -2.0, 3.0, -4]

相关问题 更多 >