【发布时间】:2021-02-15 04:54:57
【问题描述】:
我被困在这个问题上,因为我对 python 中的函数式编程相当陌生。任何帮助将不胜感激!
注意:我知道使用 map 更简单,因为我们可以使用可迭代对象,但我需要一些方法来仅使用 lambda 函数来完成此操作。
Given the following list, ages of 25 people:
ages = [79, 91, 25, 22, 95, 69, 47, 87, 87, 2, 13, 94, 50, 73, 29, 87, 81, 51, 32, 69, 10, 91, 45, 7,
51]
Q: Make a new list in which you multiply each age with a random number between 1 to 10
(Generate a random number for each age and multiply them together). Only use Lambda
Function for the multiplication. (You can use random generator provided by in python to
generate the random numbers)
这是我目前所拥有的:
import random
inconsistent = []
ages = [79, 91, 25, 22, 95, 69, 47, 87, 87, 2, 13, 94, 50, 73, 29, 87, 81, 51, 32, 69, 10, 91, 45, 7,
51]
for i in range(25):
inconsistent.append(random.randint(1,10))
print(inconsistent)
x = lambda a,b: a*b
x(ages, inconsistent)
以下是我得到的错误:
TypeError Traceback (most recent call last)
<ipython-input-24-646727e92091> in <module>
10
11 x = lambda a,b: a*b
---> 12 x(ages, inconsistent)
<ipython-input-24-646727e92091> in <lambda>(a, b)
9 print(inconsistent)
10
---> 11 x = lambda a,b: a*b
12 x(ages, inconsistent)
TypeError: can't multiply sequence by non-int of type 'list'
【问题讨论】:
标签: python python-3.x lambda functional-programming