我可以在Python中使用set的update方法合并两个set(xy)和(yx)吗?

2024-04-19 05:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这两个源代码,我不理解其中的区别

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = x.symmetric_difference(y)

print(z) ## z now is {'google', 'cherry', 'microsoft', 'banana'}

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = (x - y).update((y - x))

print(z) ## z now is NoneType

为什么第二个代码不作为第一个代码生成?正如我所知,(x-y)将返回一个集合,然后我应用更新方法(y-x)合并(x-y)集合和(y-x),所以结果应该是相同的


2条回答

正如@MisterMiyagi所说的,更新功能已经到位。您可以将(x-y)保存在某个变量中,并可以执行更新操作。像这样的

var = (x - y)
var.update((y - x))

只要做一点小改动,它就可以工作了:

x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}

z = x - y
z.update((y - x))

print(z)

{'google', 'cherry', 'microsoft', 'banana'}

更新操作已到位,因此对于您使用的表达式x-y最终是临时设置值,该值已到位更新。因此,赋值结果是None

相关问题 更多 >