python--dict

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。

python对key进行哈希函数运算,字典是无序存储的:数字、字符串、元组。

列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的

数据类型分为可变和不可变

可变数据类型:list   dict    set

不可变:bool  元祖  str   int  可哈西

1.dict(key,value)

key 必须是不可变数据类型,  

value  可以使任意类型

2.优点:可以二分查找去查询 存储大量关系型数据

特点:无序,可嵌套

dic = {
    'name':['大猛','小孟'],
    'py9':[{'num':71,'avg_age':18,},
            {'num': 71, 'avg_age': 18, },
            {'num': 71, 'avg_age': 18, },
            ],
     True:1,
     (1,2,3):'wuyiyi',
     2:'二哥',
 }
 print(dic)
输出:{True: 1, 'name': ['大猛', '小孟'], 'py9': [{'num': 71, 'avg_age': 18}, {'num': 71, 'avg_age': 18}, {'num': 71, 'avg_age': 18}], 2: '二哥', (1, 2, 3): 'wuyiyi'}

3.字典的增删改查:

dic={'age': 18, 'name': 'jin', 'sex': 'male'}
1.pop
print(dic.pop('name'))#有返回值,通过键删除,打印出删除的值
输出:jin
dic.popitem()#随机删除,元祖里是删除的键值,也有返回值
2.del
del dic #删除字典,再打印字典会报错
del dic['age']  删除age键值对
输出:{'sex': 'male', 'name': 'jin'}
3.clear  #清除字典内容
dic.clear()
输出:[]
dic={'age': 18, 'name': 'jin', 'sex': 'male'}
1.通过键值直接赋值改
dic['age']=20
2.update
dic1={'':'朱兆筠','age':18,'name': 'jin'}
dic.update(dic1)#把dic1的内容更新覆盖到dic
输出:{'': '朱兆筠', 'age': 18, 'name': 'jin', 'sex': 'male'}
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
1.print(dic.keys())#打印所有键
输出:dict_keys(['name', 'sex', 'age'])
print(dic.values())#打印所有值
输出:dict_values([18, 'male', 'jin'])
print(dic.items())#打印所有键值对
输出:dict_items([('age', 18), ('sex', 'male'), ('name', 'jin')])

2.for i in dic:  #默认输出键
输出:name
sex
age
for i in dic.keys():
输出:name
sex
age
for i in dic.values():
输出:18
jin
male
for k,v in dic.items():
     print(k,v)
输出:name jin
sex male
age 18

3.通过键直接查,但是查不到的话就报错
v1=dic['name']
print(v1)
输出:jin
4、get  查不到不报错,可以设置返回值用这个比直接查好
dic.get('name11’,没有这个键)
输出:没有这个键

4.dic 嵌套

dic = {
    'name':['alex','wusir','taibai'],
    'py9':{
        'time':'1213',
        'learn_money':19800,
        'addr':'CBD',
           },
    'age':21
}
1.把age 改成56
dic[age]=56
输出:{'py9': {'addr': 'CBD', 'time': '1213', 'learn_money': 19800}, 'name': ['alex', 'wusir', 'taibai'], 'age': 56}
2.在name 里增加一个'ritina'
dic[name].append('ritina')
输出:{'py9': {'addr': 'CBD', 'time': '1213', 'learn_money': 19800}, 'name': ['alex', 'wusir', 'taibai', '日天'], 'age': 56}
3.把name ['alex','wusir','taibai']里alex变大写
dic['name'][0]=dic['name'][0].upper()
4.在py9里面添加新的键值对
dic['py9']['female']=6
print(dic)
原文地址:https://www.cnblogs.com/zzy-9318/p/8074627.html