目录
Check if all values in a Dictionary are equal in Python
检查字典中的所有值在 Python 中是否相等
检查字典中的所有值是否相等:
- 使用
dict.values()
方法获取字典的第一个值。 - 使用
all()
函数迭代字典的值。 - 如果所有其他字典值都等于第一个值,则字典的值相等。
a_dict = { 'bobby': 5, 'hadz': 5, 'com': 5 } # ✅ Check if all values in dict are equal to a specific value all_equal_to_5 = all(value == 5 for value in a_dict.values()) print(all_equal_to_5) # 👉️ True # ------------------------------------------------- # ✅ Check if all values in dict are equal first_value = list(a_dict.values())[0] print(first_value) # 👉️ 5 all_equal = all(value == first_value for value in a_dict.values()) print(all_equal) # 👉️ True
第一个示例检查字典中的所有值是否都等于特定值。
第二个示例检查字典中的所有值是否相等。
我们使用该dict.values()
方法来查看字典的值。
a_dict = { 'bobby': 5, 'hadz': 5, 'com': 5 } # 👇️ dict_values([5, 5, 5]) print(a_dict.values())
all ()内置函数接受一个可迭代对象作为参数,True
如果可迭代对象中的所有元素都为真(或可迭代对象为空)则返回。
我们将
生成器表达式传递
给all()
函数。
在每次迭代中,我们将当前字典值与数字进行比较5
并返回结果。
a_dict = { 'bobby': 5, 'hadz': 5, 'com': 5 } all_equal_to_5 = all(value == 5 for value in a_dict.values()) print(all_equal_to_5) # 👉️ True if all_equal_to_5: # 👇️ this runs print('All values in the dictionary are equal to the specified value') else: print('Not all values in the dictionary are equal to the specified value')
all()
函数才返回。True
如果条件至少一次未满足,则函数all()
短路并返回False
。
如果您只需要检查字典中的所有值是否相等,则可以使用相同的方法。
a_dict = { 'bobby': 5, 'hadz': 5, 'com': 5 } first_value = list(a_dict.values())[0] print(first_value) # 👉️ 5 all_equal = all(value == first_value for value in a_dict.values()) print(all_equal) # 👉️ True
我们使用该类list()
将字典值的视图转换为列表,以便能够访问第一个值。
最后一步是将第一个值与字典中的所有其他值进行比较。
或者,您可以使用一个set
对象。
使用a检查字典中的所有值是否相等set
这是一个三步过程:
- 使用该类
set()
将字典的值转换为set
对象。 - 使用该
len()
函数获取set
. - 如果 的
set
长度为1
,则字典中的所有值都相等。
a_dict = { 'bobby': 5, 'hadz': 5, 'com': 5 } all_equal = len(set(a_dict.values())) == 1 print(all_equal) # 👉️ True
set ()类接受一个可迭代的可选参数,并返回一个新set
对象,其中的元素取自可迭代对象。
set
所有重复项都会自动删除。最后一步是使用len()
函数获取对象的长度set
并将结果与1
.
如果 的set
长度为 1,则字典中的所有值都相等。
或者,您可以使用该list.count()
方法。
检查字典中的所有值是否相等使用list.count()
这是一个三步过程:
- 使用
dict.values()
方法获取字典中的第一个值。 - 将字典的值转换为列表。
- 使用该
list.count()
方法检查第一个值的出现次数是否等于字典的长度。
a_dict = { 'bobby': 5, 'hadz': 5, 'com': 5 } first_value = list(a_dict.values())[0] all_equal = list(a_dict.values()).count(first_value) == len(a_dict) print(all_equal) # 👉️ True
list()
将字典的值转换为列表以便能够使用该list.count()
方法。该list.count()
方法接受一个值并返回所提供的值在列表中出现的次数。
my_list = [None, None, None] print(my_list.count(None)) # 👉️ 3 print(my_list.count('hello')) # 👉️ 0
如果字典中第一个值出现的次数等于字典的长度,则字典中的所有值都相等。
for
使用循环检查字典中的所有值是否相等
这是一个四步过程:
- 使用该
dict.values()
方法获取字典值的视图。 - 使用
for
循环遍历视图对象。 - 检查每个值是否不等于第一个值。
- 如果满足条件,则跳出循环。
a_dict = { 'bobby': 0, 'hadz': 0, 'com': 0 } all_values_equal = True first_value = list(a_dict.values())[0] for value in a_dict.values(): if value != first_value: all_values_equal = False break print(all_values_equal) # 👉️ True
我们将all_values_equal
变量初始化为True
.
在for 循环的每次迭代中,我们检查当前值是否不等于第一个值。
all_values_equal
变量设置为并跳出循环。 False
break语句跳出最内层的封闭或for
循环while
。
if
如果字典中的所有值都相等,则永远不会满足语句中的条件并且all_values_equal
变量保持设置为
True
。
您选择哪种方法是个人喜好的问题。我会使用该all()
功能,因为我发现它非常直观和直接。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: