python-字典-根据值查找键(批量处理(如删除等)所查到的内容)

知道字典的值,找到对应的键并处理

值唯一

mydisc = {'key1':'123', 'key2':'234', 'key3':'345'}
get_value = input('请输入要查值:')
if get_value in mydisc.values():
    print(list(mydisc.keys())[list(mydisc.values()).index(get_value)])
else:
    print('你要查询的值'+get_value+'不存在')

不唯一

mydisc = {'key1':'123', 'key2':'234', 'key3':'345','key5':'123'}
get_value = input('请输入要查值:')
if get_value in mydisc.values():
    for a in range(len(mydisc)):
        if list(mydisc.values())[a]==get_value:
            print(list(mydisc.keys())[a])
else:
    print('你要查询的值'+get_value+'不存在')

不唯一,找到后处理

找到所有的键,删除
不能找一个删一个
由于删掉后字典长度变了,但索引a没变,会超出范围

mydisc = {'key1':'123', 'key2':'234', 'key3':'345','key5':'123'}
get_value = input('请输入要查值:')
if get_value in mydisc.values():
    F = []  # 储存找到的键
    for a in range(len(mydisc)):
        if list(mydisc.values())[a] == get_value:
            F.append((list(mydisc.keys())[a]))    # 找到重复把键存起来
    # 找到所有的键,删除(不能找一个删一个,因为删掉后字典长度变了,但索引a没变,会超出范围)

    for del_fish in F:
        del mydisc[del_fish]       # 删掉位置重复的小鱼
    print(mydisc)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值