Python根据字典的值查询出对应的键

本文通过一个Python代码示例展示了如何使用字典来存储人员的性别信息,并利用filter函数筛选出所有男性成员。此外,还介绍了字典中key与value的特点,包括value可能存在的非唯一性以及key的唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
# Author Zhang Chen
# Email ZhangChen.Shaanxi@gmail.com
# Data 2018/11/1

persons={'ZhangSan':'male',
         'LiSi':'male',
         'WangHong':'female'}

#找出所有男性
males = filter(lambda x:'male'== x[1], persons.items())

for (key,value) in males:
    print('%s : %s' % (key,value))

输出如下:

LiSi : male
ZhangSan : male

注意:
字典中的value不保证唯一性,因此根据值查出来的是一个list.

不过字典中key的值是唯一的,因此根据key将可以查到唯一的一个value

print('李四的性别: %s'% persons['LiSi'])

输出如下

李四的性别: male
Python中,字典(dictionary)是一种内置的数据类型,它是一个无序的对集合。每个对中,(key)是唯一的,而(value)则可以重复。如果你想要通过来获取对应,可以使用几种不同的方法来实现这一目标。 1. 如果字典中的是唯一的,你可以简单地遍历字典,检查每个对,然后返回匹配。这种方法的时间复杂度是O(n),因为可能需要遍历整个字典。 ```python def find_key_by_value(d, val): for key in d: if d[key] == val: return key return None # 如果没有找到,则返回None ``` 2. 如果你频繁地需要通过来查找,并且字典中的不唯一,你可以考虑将字典中的的关系逆转,创建一个的映射。 ```python d = {'a': 1, 'b': 2, 'c': 3} value_to_key = {v: k for k, v in d.items()} ``` 这样,你可以通过快速地找到,时间复杂度降低到O(1)。但请注意,这种方法只适用于不重复的情况,或者你只关心最后一个。 3. 如果你需要频繁地通过查找,并且可能重复,你可能需要一个更复杂的数据结构,比如一个列表的映射,这样每个都会对应一个的列表。 ```python from collections import defaultdict d = {'a': 1, 'b': 2, 'c': 3, 'd': 1} value_to_keys = defaultdict(list) for key, value in d.items(): value_to_keys[value].append(key) ``` 这样,即使有重复,你也可以得到所有匹配的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值