我想应用这个函数
def run():
user_input = input("type in: ")
return user_input
列表中的每个元素 liste = [[1],[2],[3],[4],[5]]
.
每个元素(从第一个元素开始)都应该用用户提供的输入来代替。user_input
.
(注意,我想改变我现有的列表。liste
我不想创建一个新的)。)
所以我试着应用我的函数 run
使用 map
理解力
liste = [x for x in map(run(),liste)]
但这句话的结果是错误的
TypeError: 'str' object is not callable
我在这里做错了什么?
map
默认情况下,接收一个param函数(你的 run
函数不接收params)。所以把 map
的功能。
liste = [x for x in map(lambda x: run(),liste)]
或者,改变你的 run
函数来接收一个参数。
def run(x):
user_input = input("type in: ")
return user_input
liste = [[1], [2], [3], [4], [5]]
print([x for x in map(run, liste)])
请记住 map
接收函数,而不是像你这样的函数调用。 你得到的原因是 TypeError: 'str' object is not callable
是因为你把字符串值传给了map (run
调用返回字符串值),而不是一个函数(callable
)