是否可以在 List.append 等方法上使用 map

我想知道你是否可以使用这样的映射:


x = ["a"]

y = ["b","c","d"]

map(x.append,y)

我想要 x = ["a","b","c","d"],但是这不会发生


慕桂英4014372
浏览 156回答 3
3回答

胡说叔叔

map返回一个迭代器,所以只要你不迭代它就不会发生任何事情。你可以通过调用它来实现list它:x = ["a"]y = ["b","c","dx"]list(map(x.extend,y))# [None, None, None]print(x)# ['a', 'b', 'c', 'd', 'x']请注意,正如extend预期的可迭代对象(哪些 str 对象),它将迭代每个字符串y并附加字符,因此您将在上面的示例中得到'd'和'x'。您可能打算使用append:x = ["a"]y = ["b","c","dx"]list(map(x.append,y))# [None, None, None]print(x)# ['a', 'b', 'c', 'dx']但无论如何,map它的目的是产生将函数应用于可迭代项的结果(这里是由None返回的x.append()),并将其用于函数的副作用会使事情变得相当不清楚。

函数式编程

x = ["a"]y = ["b","c","d"]x.extend(y)print (x)输出: ['a', 'b', 'c', 'd']extend() 通过将列表的所有项目(作为参数传递)添加到末尾来扩展列表。extend() 方法的语法是:list1.extend(list2)在这里,list2 的元素被添加到 list1 的末尾。

HUH函数

这样做有什么理由吗?map 在可读性和执行速度的情况下是最差的选择。x = ["a"]y = ["b","c","d"]x.extend(y)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python