dict 字典

1. 语法:dis = {key : value}

2. 字典是无序的没有索引,无法用索引进行查看

3. dict 由key(键):value(值)组成

4. 键只能是不可变的值,可哈希的,比如元祖,字符串,数字,不能是列表

5. for循环可以拿到的是每个键

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
for i in dic:
    print(i,end=" ")
 <<<<苹果 香蕉 红枣 西瓜 

 

1.dis[key]="value" 如果字典中没有键,就会强制添加,如果有就会强制修改value

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
dic["苹果"]="甜的" # 先查找键,如果有,就进行更改
print(dic)
<<<<{'苹果': '甜的', '香蕉': 2, '红枣': 22, '西瓜': 5}
dic["葡萄"]=8 # 如果找不到键,就会强制添加
print(dic)
<<<<{'苹果': '甜的', '香蕉': 2, '红枣': 22, '西瓜': 5, '葡萄': 8}

 

2.dis.setdefault('key','value') 先会查找字典,如果字典中有这个键,就不进行任何操作,如果没有就会添加

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
dic.setdefault("西瓜",10)   # 先查找键,如果在字典里找到了这个键,将不进行任何操作
print(dic)
<<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5}
dic.setdefault("葡萄","")  # 先查找键,如果找不到就进行添加
print(dic)
<<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5, '葡萄': ''}

 

7.删

1.pop(key)通过key删除返回被删除的value

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a =dic.pop("西瓜")   # 删除指定的键值对,然后返回该键值对的值
print(a)
<<<<5  # 键值对的值
print(dic)
<<<<{'苹果': 1, '香蕉': 2, '红枣': 22}

2.del dis[key] 通过key删除,没有返回值

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
del dic["苹果"]  #指定键进行删除键值对,没有返回值
print(dic)
<<<<{'香蕉': 2, '红枣': 22, '西瓜': 5}

3.clear()清空字典

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
dic.clear()  # 清空字典
print(dic)
<<<<{}  # 空字典

8.改

1.popitem()随机删除 返回值为一个元组

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
re = dic.popitem()  # 随机删除一个键值对,返回为一个原组
print(re)
<<<<('西瓜', 5)
print(dic)
<<<<{'苹果': 1, '香蕉': 2, '红枣': 22}

2.dis.update(die) 跟新字典,在原来的基础上跟新已有的键的vaule,添加没有的

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
dic2 = {"苹果":1,"香蕉":2,"水蜜桃":9,"榴莲":88}
dic.update(dic2) # 在原来的基础上进行更新,添加没有的
print(dic)
<<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5, '水蜜桃': 9, '榴莲': 88}

 

9.查

1.dis['key'] 查1 如果字典中没有查找到会报错

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a=dic["百度"]
print(dic)
<<<<KeyError: '百度'# 报错

 

2.dis.get('key') 查2,如果字典中没有查找到可以指定返回内容,如果不指定会返回none

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a =dic.get("百度") # 如果查找不到键不会报错,没有找到可以指定返回内容,如果没有指定返回内容,默认None
print(dic)
<<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5}
print(a)
<<<<None
b = dic.get("百度","该内容不存在") # 这里指定了返回内容
print(b)
<<<<该内容不存在
c = dic.get("苹果") # 如果查找到该键,就会返回该键值对的value
print(c)
<<<<1

 

3.dis.setdefault('key') 查3,如果查询的到会返回value,如果查询不到会返回none

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a = dic.setdefault("百度")  # 进行查找,查找不到返回None
print(a)
<<<<None
b = dic.setdefault("苹果")   # 查找的到就返回该键值对的value
print(b)
<<<<1

10.其他(字典中独有的方法)

keys values items

1.print(dis.keys()) 高仿列表 获取字典中的所有键,具备一些列表的一些方法

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a = dic.keys() # 将字典里的所有键返回一个高仿列表,这个列表不能直接拿来用要用list()进行转换
print(a)
<<<<dict_keys(['苹果', '香蕉', '红枣', '西瓜'])

2.print(dis.values()) #高仿列表,获取字典中的所有value

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a = dic.values()  # 将字典里的所有值返回一个高仿列表,这个列表不能直接拿来用要用list()进行转换
print(a)
<<<<dict_values([1, 2, 22, 5])

 

3.print(dis.items()) 高仿列表,列表里是元祖

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
a = dic.items()  # 将字典里的所有键值对返回一个高仿列表,这个列表不能直接拿来用要用list()进行转换,这个列表里面是元组
print(a)
<<<<dict_items([('苹果', 1), ('香蕉', 2), ('红枣', 22), ('西瓜', 5)])

 

11.解构(解包)

1.a,b = '12' #将后面解构打开按位置赋值给变量print(a)print(b)

a,b = '12'
print(a) 
<<<<1
print(b)
<<<<2

 

 

 

2.for a,b in dis.items(): #常用方法# print(a)# print(b)

dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
for a,b in dic.items():
    print(a)
    print(b)
# <<<<
# 苹果
# 1
# 香蕉
# 2
# 红枣
# 22
# 西瓜
# 5

 

posted @ 2019-08-05 18:00  tiwe  阅读(278)  评论(0编辑  收藏  举报