为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英4014372 2022-01-18 13:31:57
我想知道你是否可以使用这样的映射:x = ["a"]y = ["b","c","d"]map(x.append,y)我想要 x = ["a","b","c","d"],但是这不会发生
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

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()),并将其用于函数的副作用会使事情变得相当不清楚。


查看完整回答
反对 回复 2022-01-18
?
函数式编程

TA贡献1807条经验 获得超9个赞

x = ["a"]

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

x.extend(y)

print (x)

输出:


 ['a', 'b', 'c', 'd']

extend() 通过将列表的所有项目(作为参数传递)添加到末尾来扩展列表。


extend() 方法的语法是:


list1.extend(list2)


在这里,list2 的元素被添加到 list1 的末尾。


查看完整回答
反对 回复 2022-01-18
?
HUH函数

TA贡献1836条经验 获得超4个赞

这样做有什么理由吗?


map 在可读性和执行速度的情况下是最差的选择。


x = ["a"]

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

x.extend(y)


查看完整回答
反对 回复 2022-01-18
  • 3 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信