码迷,mamicode.com
首页 > 编程语言 > 详细

python学习(字典)

时间:2019-03-14 22:26:20      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:删除   存在   根据   not   def   upd   str   weight   div   

 字典 

字典是一些列键-值对,每个键都与一个值相关联。

dict key 必须是不可变数据类型,可哈希, value:任意数据类型。

数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool int str       可哈希
可变数据类型:list,dict set             不可哈希

dict 优点:二分查找去查询
         存储大量的关系型数据
      特点:无序的

dic1 = {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘,}

dic1[‘high‘] = 60   #没有键值对,添加

print(dic1)     --->{‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘, ‘high‘: 60}

dic1[‘age‘] = 16  #如果有键,则值覆盖 相当于改

print(dic1)  ---->{‘age‘: 16, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘}

dic1.setdefault(‘weight‘) # 没有此键才添加。  不写值默认返回None

print(dic1)----->{‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘, ‘weight‘: None}

dic1.setdefault(‘weight‘,150)

print(dic1)----->{‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘, ‘weight‘: 150}

dic1.setdefault(‘name‘,‘sb‘) # 有此键,不做任何改变

print(dic1)  ----->{‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘}

 

dic1 = {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘,}

dic1.pop(‘age‘) # 按键去删除

print(dic1)----->{‘name‘: ‘jin‘, ‘sex‘: ‘male‘}

print(dic1.pop(‘age‘))    有返回值,返回的是该键所对应的值

dic1.pop(‘二哥‘)  # 删没有此键,会报错

print(dic1)----->KeyError: ‘二哥‘

print(dic1.pop(‘二哥‘,None)) ----》None# 不知道有没有这个键 的时候,加个参数并返回一般用None,给予提示

dic1.popitem()  # 随机删除

 print(dic1)---->{‘age‘: 18, ‘name‘: ‘jin‘}

print(dic1.popitem())  ---->  (‘name‘, ‘jin‘)   有返回值,返回值为 元组  里面是删除的键 和值。

del dic1[‘name‘]   #  根据键 来删除

 print(dic1) ------>{‘age‘: 18, ‘sex‘: ‘male‘}

del dic1[‘hobby‘]

print(dic1)  ---->KeyError: ‘hobby‘   #没有此键报错

del dic1     #删除整个字典

print(dic1) ----》NameError: name ‘dic1‘ is not defined

dic1.clear() #清空字典

update

dic1 = {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘,}

dic = {"name":"jin","age":18,"sex":"male"}

dic2 = {"name":"alex","weight":75}

dic2.update(dic)  #把dic所有的键值对,更新到dic2中,有的覆盖,没有的添加

print(dic) ---》{‘name‘: ‘jin‘, ‘age‘: 18, ‘sex‘: ‘male‘}

print(dic2)---》{‘name‘: ‘jin‘, ‘weight‘: 75, ‘age‘: 18, ‘sex‘: ‘male‘}

dic1 = {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘,}

dic1 = {‘age‘: 18, ‘name‘: ‘jin‘, ‘sex‘: ‘male‘,}

 print(dic1.keys())  ---->dict_keys([‘name‘, ‘age‘, ‘sex‘]) #打印所有的键

 print(dic1.values())---->dict_values([‘jin‘, 18, ‘male‘]) #打印所有的值

print(dic1.items())--->dict_items([(‘name‘, ‘jin‘), (‘age‘, 18), (‘sex‘, ‘male‘)])

print(type(dic1.keys()))  ---> <class ‘dict_keys‘>

for i in dic1:    # 遍历字典,没有标示默认是键

 for i in dic1.keys(): #   遍历dic的所有键

for i in dic1.values():  #遍历dic的所有值

for k,v in dic1.items()   #

v1 = dic1[‘name‘]   根据键找值

print(v1) ----》jin

v2 = dic1[‘name1‘]  # 没有此键会报错

print(v2)-----》KeyError: ‘name1‘

                    dic.get(key,None)

v3 = dic1.get(‘name‘)    # 用get按键找值

print(v3) ----》 jin

v4 = dic.get("name1")   #当用get去找不存在的键,会有以给返回值,默认是None

print(v4)  ----->None

v5 = dic.get("name1","没有此键")

print(v5)  ----->没有此键    # 可以自己拟定

技术图片
a,b = 1,2
print(a,b)     #1 2
a = 1
b = 2
a,b = b,a
print(a,b)     #2 1
a,b = [1,2],[2,3]
print(a,b)   #[1, 2] [2, 3]
a,b = (1,2)
print(a,b)      #1 2
View Code

 

python学习(字典)

标签:删除   存在   根据   not   def   upd   str   weight   div   

原文地址:https://www.cnblogs.com/bzluren/p/10534014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!