Python 比较来自同一字典的键值不起作用

Python compare keys values from same dictionary not working

我正在学习 python 但我不明白为什么这段简单的代码不起作用。

list = {"Text":"Text"}

print(list)

if list.keys() == list.values():
    print("True")
else:
    print("False")

这个 returns False 当它应该 return True.

dict.keys() 和 dict.values() 的类型不同,因此必须将两者都转换为列表对象才能进行比较。

data = {"Text":"Text"}

a = data.keys() 
b = data.values()

print(a)
print(b)
print(a == b) # False

if list(a) == list(b):
    print("True")
else:
    print("False")

输出:

dict_keys(['Text'])
dict_values(['Text'])
False
True

keys()values() 不 return 列表,它们 return 产生键和值的迭代器对象。如果要比较内容,请使用 list() 函数将它们转换为列表。

您将无法在代码段中执行此操作,因为您已将名称 list 重新定义到字典中。您应该使用与内置函数不同的变量名。

my_dict = {"Text":"Text"}

print(my_dict)

if list(my_dict.keys()) == list(my_dict.values()):
    print("True")
else:
    print("False")