MAP的意外结果

时间:2016-07-05 17:16:06

标签: python python-3.x

我期待下面的标题'带有MAP的新列表'下的代码返回一个列表,就像for循环和列表理解一样....但是,唉,它没有。我得到了<map object at 0X000...8C1CD30>。我如何从这里到我的名单?

带地图的新列表

list_a = ['one_A', 'two_A', 'three_A']

#initialize the list
new_li = map(lambda i: '{0}\n'.format(i), list_a)

print(new_li)

带循环的新列表(作品)

list_a = ['one_A', 'two_A', 'three_A']
new_li = []
for i in list_a:
    new_li.append('{i}\n'.format(i))

print(new_li)

列表理解的新列表(作品)

list_a = ['one_A', 'two_A', 'three_A']

new_li = ['{i}\n'.format(i=i) for i in list_a]

print(new_li)

1 个答案:

答案 0 :(得分:3)

map返回一个迭代器。如果您想要列表中的值,则必须将其转换为列表:

new_li = list(map(lambda i: '{0}\n'.format(i), list_a))

new_li = list(map('{0}\n'.format, list_a))