Python字典类型key找value或者value找key方法汇总

发布时间:2023年12月30日

字典中,如何通过唯一的value获取key

如果传入的值在字典的值中不存在,可以返回一个特定的默认值或者抛出一个异常来表示该情况。以下是两种处理方式的示例:

  1. 返回默认值:
def get_key_by_value(dictionary, value, default=None):
    for key, val in dictionary.items():
        if val == value:
            return key
    return default

# 示例字典
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 2}

# 获取值为4的键,默认返回None
result = get_key_by_value(my_dict, 4)
print(result)

# 获取值为4的键,指定默认返回值为'Not Found'
result = get_key_by_value(my_dict, 4, default='Not Found')
print(result)

在上述示例中,我们在 get_key_by_value() 函数中添加了一个额外的参数 default,用于指定默认返回值。在循环遍历字典时,如果没有找到匹配的值,则会返回这个默认值。

运行代码,输出结果如下:

None
Not Found

可以看到,当传入值为 4 时,由于字典中没有对应的键,所以返回了设定的默认值。

  1. 抛出异常:
def get_key_by_value(dictionary, value):
    for key, val in dictionary.items():
        if val == value:
            return key
    raise ValueError("Value not found in dictionary")

# 示例字典
my_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 2}

# 获取值为4的键,抛出异常
result = get_key_by_value(my_dict, 4)
print(result)

在上述示例中,如果没有找到匹配的值,我们使用 raise 语句抛出了一个 ValueError 异常,并提供了相应的错误消息。

运行代码,会得到以下异常输出:

ValueError: Value not found in dictionary

可以看到,当传入值为 4 时,由于字典中没有对应的键,所以抛出了指定的异常。

2.通过key找value

以下是这四种Python字典查询键值对的方法:

  1. 使用键查找单个值

使用字典的键(key)可以直接查找对应的值。

my_dict = {'a': 1, 'b': 2, 'c': 3}
value_a = my_dict['a']
print(value_a)  # 输出: 1

在上述示例中,我们通过键 'a' 直接查找了字典 my_dict 中对应的值 1

如果键不存在,则会引发 KeyError 异常。因此,在使用该方法查找值之前,最好先使用 in 关键字检查字典中是否存在该键。

  1. 使用get()方法查找键对应的值

使用 get() 方法可以查找字典中指定键对应的值,如果键不存在,则返回 None 或指定的默认值。

my_dict = {'a': 1, 'b': 2, 'c': 3}
value_a = my_dict.get('a')
print(value_a)  # 输出: 1

value_d = my_dict.get('d')  # 返回 None
value_d = my_dict.get('d', 0)  # 返回默认值 0

在上述示例中,我们使用 get() 方法查找了字典中键 'a' 和键 'd' 对应的值,并设置了默认值。

  1. 使用setdefault()查找

使用 setdefault() 方法可以查找字典中指定键对应的值,如果键不存在,则添加该键及其对应的值。如果键已存在,则返回其对应的值。

my_dict = {'a': 1, 'b': 2, 'c': 3}
value_a = my_dict.setdefault('a', 0)
value_d = my_dict.setdefault('d', 4)
print(value_a)  # 输出: 1
print(value_d)  # 输出: 4

# 字典被更新
print(my_dict)  # 输出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

在上述示例中,我们使用 setdefault() 方法查找了字典中键 'a' 和键 'd' 对应的值,并添加了键 'd' 及其对应的值。由于键 'a' 已存在,因此不会添加该键,而是直接返回其对应的值。

注意:如果未指定默认值,则默认为 None

  1. 查询所有键和值以及键值对

可以使用 keys()values()items() 方法查询字典中所有的键、所有的值以及所有的键值对。

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = my_dict.keys()
values = my_dict.values()
items = my_dict.items()

print(list(keys))   # 输出: ['a', 'b', 'c']
print(list(values))   # 输出: [1, 2, 3]
print(list(items))   # 输出: [('a', 1), ('b', 2), ('c', 3)]

在上述示例中,我们使用了 keys()values()items() 方法来查询字典中的所有键、所有值和所有键值对,并将它们转换为了列表形式。注意:items() 方法返回的是一个由元组构成的视图对象,可以通过转换为列表来查看其中的元素。

文章来源:https://blog.csdn.net/m0_57021623/article/details/135231666
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。