当我尝试将地图值转换为列表以打印它时,出现“列表对象不可调用”错误

时间:2019-07-17 10:10:46

标签: python-3.x list mapping

我正在学习map()函数,一些教程网站使用map()和列表,如代码所示。他们运行代码,但没有错误,但是我尝试运行此代码,但出现错误。你能解释为什么吗?

list_a = [1,2,3]
list_b = ['one', 'two', 'three']
map_func = map(list_a, list_b)
map_func = list(map_func)
print(map_func)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-6ce25d7a149a> in <module>
      2 list_b = ['one', 'two', 'three']
      3 map_func = map(list_a, list_b)
----> 4 map_func = list(map_func)
      5 print(map_func)

TypeError: 'list' object is not callable

1 个答案:

答案 0 :(得分:0)

  

Python map()函数 map()函数在将给定函数应用于给定迭代器的每个项目后返回结果列表   (列表,元组等)

     

语法: map(fun, iter)

     

返回将函数应用于所有可迭代项的迭代器,   产生结果。如果传递了其他可迭代的参数,   函数必须接受那么多参数,并应用于项目   来自所有可迭代对象的并行操作。 ...

示例:

# Return double of n
def addition(n):
    return n + n

# We double all numbers using map()
numbers = (1, 2, 3, 4)
result = map(addition, numbers)
print(list(result))

输出:

[2, 4, 6, 8]

您对功能map()的使用是错误的,您可能正在考虑zip()功能

list_a = [1,2,3]
list_b = ['one', 'two', 'three']
map_func = zip(list_a, list_b)
map_func = list(map_func)
print(map_func)

输出:

[(1, 'one'), (2, 'two'), (3, 'three')]