测试元组是否具有相同的内容

2024-04-29 10:53:56 发布

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

我必须实现一个函数cmpT,它应该返回以下结果:

>>> cmpT((1, 2), (1, 2))
True
>>> cmpT((1, 2), (2, 1))
True
>>> cmpT((1, 2), (1, 2, 1))
False
>>> cmpT((1, 2), ())
False

我的代码:

 def cmpT(t1, t2): 
    if t1 == t2:
        return True
    else:
        return False

它不提供所需的输出,cmpT((1, 2), (2, 1))不返回True。怎么了?


Tags: 函数代码falsetruereturnifdefelse
3条回答

首先,您的代码可以替换为:

def cmpT(t1, t2):
    return t1 == t2

其次,我不知道它为什么不起作用。对我来说也很好。

如果每个元素都在两个列表中,并且次数相同,则应该检查每个元素。最好的解决办法就是分类。

def cmpT(t1, t2): 
  return sorted(t1) == sorted(t2)

看看:http://codepad.org/PH6LrAvU

如果要比较两个集合的内容,必须将元组转换为集合。

>>> a = set((1,2))
>>> b = set((2,1))
>>> a
set([1, 2])
>>> b
set([1, 2])
>>> a==b
True

即:

def compT(t1, t2):
    return set(t1) == set(t2)

相关问题 更多 >