dict字典
- 基础:
d={‘key’:value}
key是必须不可变对象
增:d[‘key’]=value
删d.pop(‘key’)
查d.get(‘key’) - 字典的合并:
法一dict3={**dict1,**dict2}
法二dict(dict1,**dict2)
法三c = {} c.update(dict1) c.update(dict2)
例:字典如何删除键和合并两个字典
dict1={'a':1,'b':3}
dict2={'c':1,'d':5}
dict1.pop('a')
print(dict1)
#合并方法1
print(dict(dict1,**dict2))
#合并方法2
print({**dict1,**dict2})
#合并方法3
c = {}
c.update(dict1)
c.update(dict2)
print(c)
- 字典的排序
- 用dict1.values()得到所有的values,然后对value排序
d.keys()同理
用dict1.items(),得到包含key,value的元组
x指元组,x[1]是值,x[0]是键
例:字典根据键从小到大排序
d={1:'a',3:'c',2:'b',0:'Z'}
print(d)
d1=dict(sorted(d.items(),key=lambda x:x[0]))
print(d1)
例:根据键对字典排序(方法一,zip函数)
foo = {"name":"zs","age":19,"sex":"man","city":"bj"}
f1=dict(sorted(foo.items(),key=lambda x:x[0]))
print(f1)
#sorted函数中的可迭代对象不要用字典d,那样只能迭代出的字典d的键。要用d.items()才可迭代出字典的键值对。
例:求下面三个方法的打印结果
def fn(k,v,dic={}):
dic[k]=v
print(dic)
fn("one",1)
fn("two",2)
fn("three",3,{})
#fn("one",1)直接将键值对传给字典;
# fn("two",2)因为字典在内存中是可变数据类型,所以指向同一个地址,传了新的额参数后,会相当于给字典增加键值对
# fn("three",3,{})因为传了一个新字典,所以不再是原先默认参数的字典
#输出
{'one': 1}
{'one': 1, 'two': 2}
{'three': 3}
例:使用pop和del删除字典中的"name"字段,dic={“name”:“zs”,“age”:18}
dic={"name":"zs","age":18}
dic.pop("name")
print(dic)
del dic["name"]
print(dic)