将列表的元素提升为权力

时间:2015-05-19 10:45:59

标签: python list python-3.x

如何将列表中的数字提升到一定的权力?

9 个答案:

答案 0 :(得分:7)

使用列表理解:

def power(my_list):
    return [ x**3 for x in my_list ]

https://docs.python.org/3.4/tutorial/datastructures.html#list-comprehensions

答案 1 :(得分:2)

def turn_to_power(list, power=1): 
    return [number**power for number in list]

示例:

   list = [1,2,3]
   turn_to_power(list)
=> [1, 2, 3]
   turn_to_power(list,2)
=> [1, 4, 9]

UPD:你还应该考虑阅读pow(x,y) lib的math函数:https://docs.python.org/3.4/library/math.html

答案 2 :(得分:2)

没人提及mapfunctools.partial,接受的答案没有提到pow,但为了完整起见,我发布了这个解决方案:

import functools
bases = numbers = [1,2,3]
power = exponent = 3
cubed = list(map(functools.partial(pow, exponent), numbers))

我会按照建议使用列表理解,但我认为functools.partial是一个非常酷的功能,值得分享。顺便说一下,我从@ sven-marnach here偷了我的回答。

答案 3 :(得分:2)

另一种map模式,使用lambda代替function.partial()

numbers=[1,2,3,4]
squares=list(map(lambda x:pow(x,2),numbers))
print(squares)

答案 4 :(得分:0)

实际上你的脚本做了你想做的事,这就是结果(请记住你正在将幂函数应用到[1,2,3,4,5,6,7,8,9])

('立方列表:',[1,8,27,64,125,216,343,512,729])

您的问题是您还修改了原始列表,因为python中列表类型的性质。如果您还想保留原始列表,则应将其副本传递给您的函数。你可以这样做

def main():
    numbers=[1,2,3,4,5,6,7,8,9]
    numbers3=power(numbers[:])
    print('Original list:', numbers)
    print('Cubic list:', numbers3)

答案 5 :(得分:0)

使用列表推导来提高速度:

print('Original list:', numbers)
print('Cubic list:', [n**3 for n in numbers])

答案 6 :(得分:0)

print(list(map(pow,numbers,repeat(2)))

答案 7 :(得分:0)

我通过接受用户的输入创建了一个随机列表,我们称之为“n” 并将列表中的数字平方。

n = int(input("Enter a number"))
list1 = [*range(0,n,1)]
list2 = [number ** 2 for number in list1]

  

答案 8 :(得分:-1)

您可以这样做:

numbers=[1,2,3,4,5,6,7,8,9]
numbers3 = []
for n in numbers:
    numbers3.append(n**3)

print('Original list:', numbers)
print('Cubic list:', numbers3)