我想知道你是否可以使用这样的映射: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()),并将其用于函数的副作用会使事情变得相当不清楚。
函数式编程
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 的末尾。
添加回答
举报
0/150
提交
取消