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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章