Python中没有monad?

2024-05-13 21:45:37 发布

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

请帮助理解为什么set(first).update(second)在Python中不起作用。你知道吗

>>> names1 = ["Ava", "Emma", "Olivia"]
>>> names2 = ["Olivia", "Sophia", "Emma"]
>>> 
>>> sn1=set(names1)
>>> sn1.update(names2)
>>> sn1
{'Sophia', 'Emma', 'Ava', 'Olivia'}

>>> sn1=set(names1).update(names2)
>>> sn1
(Nothing displayed)

更新

正如评论中所说,这与莫纳德无关。问题是,是否有一种方法可以在一行中获得对象的链式变换的结果。你知道吗


Tags: 方法评论updatefirstsecondsetnothingsophia
1条回答
网友
1楼 · 发布于 2024-05-13 21:45:37

在第二个示例中,sn1被设置为update方法的返回值(即None),而不是set(names1)返回的集。你知道吗

从Python3.8开始,您可以像尝试使用赋值表达式一样进行操作。你知道吗

>>> names1 = ["Ava", "Emma", "Olivia"]
>>> names2 = ["Olivia", "Sophia", "Emma"]
>>> (sn1 := set(names1)).update(names2)
>>> sn1
{'Sophia', 'Olivia', 'Emma', 'Ava'}

相关问题 更多 >