特性:查找快、无顺序,不可通过索引查找字典元素
方法1
:
a={'rect':[1,2,3],'string':'this is python','score':95}
b=a.get('string')
print(b)
>>>output:'this is python'
方法2
:
a={'rect':[1,2,3],'string':'this is python','score':95}
b=a['string']
print(b)
>>>output:'this is python'
由于字典在定义时,其键-值一一对应,且键唯一、为不可变元素,但值不唯一,所以根据值查找键比较麻烦,下面假设字典中的值是唯一的,也为不可变元素,来查找键
。
方法1
:字典的键-值反转:键变成值,值变为键: 然后按照上面的方法查找。
#这里原来字典a中的第一个键值对要去掉,因为列表是可变的,不能作为字典的键
a={'string':'this is python','score':95}
new_a={v,k for k,v in a.items()}
print(new_a)
>>>output:{'this is python':'string',95:'score'}
方法1比较麻烦,很难保证值是不可变数据类型。下面用第二种方法,通过定义一个函数来查找,此方法不受值的数据类型限制,但也要保证值唯一:
方法2
:定义一个函数:
a={'rect':[1,2,3],'string':'this is python','score':95}
def get_key(a,Val):
return [k for k,v in a.items() if v==Val]
c=get_key(a,95)[0]
print(c)
>>>output:'score'
a={'rect':[1,2,3],'string':'this is python','score':95}
b=a['string']
c='This Is Python!'
a['string']=c
print(a)
>>>output:a={'rect':[1,2,3],'string':'This Is Python!','score':95}
字典的键不能直接修改,因为键是hash.
方法1
:推荐
a={'rect':[1,2,3],'string':'this is python','score':95}
a['name']=a.pop('string')
print(a)
>>>output:a={'rect':[1,2,3],'score':95,'name':'this is python'}
方法2
:新建一个键值对,其值等于将要被修改的键对应的值,然后再删除原来的键值对
a={'rect':[1,2,3],'string':'this is python','score':95}
a['name']=a['string']
a.pop('string')
print(a)
>>>output:a={'rect':[1,2,3],'name':'this is python','score':95}
修改成功!