{item1,item2}=={item3,item4}在Python中是如何工作的?

{item1,item2}=={item3,item4}在Python中是如何工作的?,python,Python,我正在解决一个Python挑战,我的回答如下: def areEquallyStrong(yourLeft, yourRight, friendsLeft, friendsRight): return (yourLeft == friendsLeft or yourLeft == friendsRight) and (yourRight == friendsLeft or yourRight == friendsRight) 我想知道它是否相当于 def areEq

我正在解决一个Python挑战,我的回答如下:

def areEquallyStrong(yourLeft, yourRight, friendsLeft, friendsRight):
    return (yourLeft == friendsLeft or yourLeft == friendsRight) 
        and (yourRight == friendsLeft or yourRight == friendsRight)

我想知道它是否相当于

def areEquallyStrong(yourLeft, yourRight, friendsLeft, friendsRight):
    return {yourLeft, yourRight} == {friendsLeft, friendsRight}
我不知道{}={}在引擎盖下做了什么,以及它是如何比较的。

{}=={}是一个集合比较。Python的内置集类型是无序且唯一的。当且仅当每个集合的每个元素都包含在另一个集合中时,两个集合才相等。Python的内置集类型是无序且唯一的。当且仅当每个集合的每个元素都包含在另一个集合中时,两个集合才相等。此处使用内置类型函数很有用:

>>>类型{} >>>类型{1,2} 我们可以得出结论{}在你的例子中不是一本字典,而是一本词典。集合是一个无序的值序列,其中每个元素都是唯一的,如果打印{2,2},则输出为{2}。{1,2}=={1,2}进行集合比较。基本上,如果订购,它会检查这两套是否相同。 但是,这两个代码段不会给出相同的结果,因为在第一个代码段中,您要检查您的左和右是否都等于friendsLeft和friendsRight中的一个,而在第二个代码段中,您不是。你最好把friendsLeft和friendsRight放在一个列表中,并检查一下你的左右两边是否都在该列表中:

你的左、右、右、右、右、右、左、右 在[friendsLeft,friendsRight]中返回左侧,在[friendsLeft,friendsRight]中返回右侧 在以下情况下,使用内置类型函数很有用:

>>>类型{} >>>类型{1,2} 我们可以得出结论{}在你的例子中不是一本字典,而是一本词典。集合是一个无序的值序列,其中每个元素都是唯一的,如果打印{2,2},则输出为{2}。{1,2}=={1,2}进行集合比较。基本上,如果订购,它会检查这两套是否相同。 但是,这两个代码段不会给出相同的结果,因为在第一个代码段中,您要检查您的左和右是否都等于friendsLeft和friendsRight中的一个,而在第二个代码段中,您不是。你最好把friendsLeft和friendsRight放在一个列表中,并检查一下你的左右两边是否都在该列表中:

你的左、右、右、右、右、右、左、右 在[friendsLeft,friendsRight]中返回左侧,在[friendsLeft,friendsRight]中返回右侧 在python中,{item1,item2}创建一个。集合对象是不同对象的无序集合。创建集合或向集合中添加项目时,将删除重复的项目

如果两个集合包含完全相同的元素,则两个集合之间的等价性比较结果为真

您可以像这样尝试:

>>> s1 = {1, 2, 3, 1}
>>> s2 = {3, 2, 1}
>>> s1
{1, 2, 3}
>>> s2
{1, 2, 3}
>>> s1 == s2
True
注:

准确地说,集合中的对象必须是。 当s={item1,item2}创建一个集合时,s={}不会创建一个空集合。相反,它会创建一个空的。要创建空集,请使用s=set。 在python中,{item1,item2}创建一个。集合对象是不同对象的无序集合。创建集合或向集合中添加项目时,将删除重复的项目

如果两个集合包含完全相同的元素,则两个集合之间的等价性比较结果为真

您可以像这样尝试:

>>> s1 = {1, 2, 3, 1}
>>> s2 = {3, 2, 1}
>>> s1
{1, 2, 3}
>>> s2
{1, 2, 3}
>>> s1 == s2
True
注:

准确地说,集合中的对象必须是。 当s={item1,item2}创建一个集合时,s={}不会创建一个空集合。相反,它会创建一个空的。要创建空集,请使用s=set。
设置比较。{6,3}=={3,6}将返回True{}=={}如果您正在比较两个集合,如果您还不知道集合,请想象它是一个无序且没有重复项的列表。例如:{1,2}=={2,1}是真的。不,它们不是等价的。尝试将3、3、3、1传递给两个函数设置比较。{6,3}=={3,6}将返回True{}=={}如果您正在比较两个集合,如果您还不知道集合,请想象它是一个无序且没有重复项的列表。例如:{1,2}=={2,1}是真的。不,它们不是等价的。尝试将3,3,3,1传递给这两个函数