Индексирование определенных значений в списке, который будет изменен на основе соответствующего индекса - PullRequest
0 голосов
/ 15 мая 2018

У меня есть два массива из предыдущих функций

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]

Я пропускаю что-то, что изменяет знак элемента n в ALPe на основе элемента m в ALPt, что выглядело бы так:

[80.8421504880813, -71.43925528310385, 80.8421504880813]

есть предложения?

1 Ответ

0 голосов
/ 15 мая 2018

просто глядя на:

То есть каждый элемент в ALPe должен иметь такой же знак, как и элемент в ALPt в той же позиции?- glibdud 1 час назад

это цель - 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...