我期待下面标题“带 MAP 的新列表”下的代码返回一个列表,就像 for 循环和列表理解......但是,唉,它没有。我明白了,<map object at 0X000...8C1CD30>
反而。我如何从这个转到我的列表?
带 map 的新列表
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)
最佳答案
map
返回一个迭代器。如果您想要列表中的值,则必须将其转换为列表:
new_li = list(map(lambda i: '{0}\n'.format(i), list_a))
或
new_li = list(map('{0}\n'.format, list_a))
关于python - MAP 的意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38209092/