如何将列表中的数字提升到一定的权力?
答案 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)
没人提及map
和functools.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)