Ani*_*mes 4 python dictionary tuples
我有两个 dicts 我正在将 bot 转换为 tuples 。两个 dict 都包含相同的元素,但它们不是使用相同的逻辑生成的。
例如,假设我有一个这样的元组:
(('a',5),('n',4),('c',8))
Run Code Online (Sandbox Code Playgroud)
第二个元组是这样的:
(('c',8),('n',4),('a',5))
Run Code Online (Sandbox Code Playgroud)
他们的原始字典是这样的(可能,我不知道字典中的元素将如何排序,但是它们是从包含相同元素的两个字典生成的(不多也不少):
{'a':5,'c': 8,'n':4}
Run Code Online (Sandbox Code Playgroud)
对于人类来说,两个元组是相似的,但对于计算机来说它们不是。
如何检查两个元组是否相似?
对两者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
Run Code Online (Sandbox Code Playgroud)
如果两个元组的元素都是unique,您也可以使用setas比较它们:
>>> set(tuple_1) == set(tuple_2)
True
Run Code Online (Sandbox Code Playgroud)
作为一个侧面说明,你不必在转换dict到tuple以字典的内容进行比较。您可以直接将dict对象比较为:
>>> {1: 2, 3: 4} == {3: 4, 1: 2}
True
Run Code Online (Sandbox Code Playgroud)