检查字典中的所有值在 Python 中是否相等

目录

Check if all values in a Dictionary are equal in Python

  1. 检查字典中的所有值在 Python 中是否相等
  2. 使用 a 检查字典中的所有值是否相等set
  3. 使用检查字典中的所有值是否相等list.count()
  4. for使用循环检查字典中的所有值是否相等

检查字典中的所有值在 Python 中是否相等

检查字典中的所有值是否相等:

  1. 使用dict.values()方法获取字典的第一个值。
  2. 使用all()函数迭代字典的值。
  3. 如果所有其他字典值都等于第一个值,则字典的值相等。
主程序
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

这是一个三步过程:

  1. 使用该类set()将字典的值转换为set对象。
  2. 使用该len()函数获取set.
  3. 如果 的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 对象是唯一元素的无序集合,因此当我们将字典的值转换为 a 时,set所有重复项都会自动删除。

最后一步是使用len()函数获取对象的长度set
并将结果与
1​​ .

如果 的set长度为 1,则字典中的所有值都相等。

或者,您可以使用该list.count()方法。

检查字典中的所有值是否相等使用list.count()

这是一个三步过程:

  1. 使用dict.values()方法获取字典中的第一个值。
  2. 将字典的值转换为列表。
  3. 使用该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使用循环检查字典中的所有值是否相等

这是一个四步过程:

  1. 使用该dict.values()方法获取字典值的视图。
  2. 使用for循环遍历视图对象。
  3. 检查每个值是否不等于第一个值。
  4. 如果满足条件,则跳出循环。
主程序
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()
功能,因为我发现它非常直观和直接。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: