python 字典更改

1.字典

特性:查找快、无顺序,不可通过索引查找字典元素

1.1根据字典的键查找值:

方法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.2根据值查找键:

由于字典在定义时,其键-值一一对应,且键唯一、为不可变元素,但值不唯一,所以根据值查找键比较麻烦,下面假设字典中的值是唯一的,也为不可变元素,来查找键
方法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'
1.3修改字典-值:
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}
1.4修改字典-键:

字典的键不能直接修改,因为键是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}

修改成功!

你可能感兴趣的:(代码训练,python,数据结构)