Возведение элементов списка в полномочия, указанные в другом списке - PullRequest
0 голосов
/ 02 июля 2018

Мне нужно поднять свой список [23, 43, 32, 27, 11] до полномочий, указанных в этом списке [3, 5, 4, 3, 2].

Значения 23 должны быть увеличены до степени 3, 43 до степени 5 и т. Д ...

Я могу сделать весь список до одной степени с помощью этого вопроса: Повышение элементов списка до степени , но не так, как мне нужно.

Должен ли я использовать две петли? Большое спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Использовать NumPy:

import numpy as np

b = np.array([23, 43, 32, 27, 11])
e = np.array([3, 5, 4, 3, 2, 2])

# constrain sizes (like zip)
m = min(b.shape[0], e.shape[0])
b = b[:m]
e = e[:m]

print(b**e)            # 1. typical method
print(np.power(b, e))  # 2. you might like this better in some scenarios
0 голосов
/ 02 июля 2018

Вы можете использовать zip():

>>> a = [23, 43, 32, 27, 11]
>>> b = [3, 5, 4, 3, 2]
>>> c = [x**y for x, y in zip(a, b)]
>>> c
[12167, 147008443, 1048576, 19683, 121]

или map() и operator.pow():

>>> from operator import pow
>>> d = list(map(pow, a, b))
>>> d
[12167, 147008443, 1048576, 19683, 121]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...