比较元组与不在ord中的元素

2024-04-26 11:11:13 发布

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

我有两个口头禅,我要把bot转换成元组。两个dict包含相同的元素,但它们不是使用相同的逻辑生成的。在

例如,假设我有一个这样的元组:

(('a',5),('n',4),('c',8))

第二个元组是这样的:

^{pr2}$

它们最初的dict是这样的(可能,我不知道元素在dict中如何排序,但是它们是由包含相同元素的两个dict生成的(不多,不少):

{'a':5,'c': 8,'n':4}

对于人类来说,这两个元组是相似的,但对于计算机来说则不是。在

我如何检查两个元组是否相似?在


Tags: 元素排序bot计算机人类逻辑dict元组
3条回答

您还可以将元组转换为dict,然后进行比较。在

不确定这是否更快/更慢/与排序相同。在

dict(t1) == dict(t2)
def similarTuple(a,b):
    h = {}
    for e in a:
        h[e] = True
    for e in b:
        if e not in h:
            return False
    return True

tuple进行排序并进行比较。例如:

>>> tuple_1 = (('a',5),('n',4),('c',8))
>>> tuple_2 = (('c',8),('n',4),('a',5))

# Non-sorted --> unequal; issue you are currently facing
>>> tuple_1 == tuple_2
False

# comparing sorted tuples -- equal 
>>> sorted(tuple_1) == sorted(tuple_2)
True

如果两个元组的元素都是唯一的,您也可以使用set来比较它们:

^{pr2}$

作为补充说明,您不必为了比较词典的内容而将dict转换为{}。您可以将dict对象直接比较为:

>>> {1: 2, 3: 4} == {3: 4, 1: 2}
True

相关问题 更多 >