🐋字典
一、基础知识
1.字典是无序的,不支持索引和切片
2.格式:字典名={元素1,元素2,…}
元素以键值对存在==key(键值):value(实值)
3.空字典:格式:字典名={}或者字典名=dict()
dict = {
"name" : "张三",
"age" : "20",
"sex" : "男"
}
dict1={}
print(dict)
print(dict1)
#{'name':'张三','age':'20','sex':'男'}
#{}空字典
4.字典的一些基本操作
增:
格式:字典名[new key]=new value
dict["score"] = 100
print(dict)
#{'name':'张三','age':'20','sex':'男','score':'100'}
删:
格式:del 字典名[key]
del dict["name"]
print(dict)
#{age':'20','sex':'男'}
改:
格式:字典名[key]=new value
dict["name"]="李四"
print(dict)
#{'name':'李四','age':'20','sex':'男'}
查:
格式:value=字典名[key]
contains要检查字典中是否存在特定键,可使用。如果要查找的键在,则返回True,否则返回False
value=dict["sex"]
print(value)
__________________________________________________
print(myDictionary.__contains__(key-2));
可使用clear()清空字典
dict.clear()
print(dict)
#{}
二、常见操作
| 名称 | 解释 |
|---|---|
| len() | 测量字典中键值对个数 |
| keys() | 返回字典中所有的key |
| values() | 返回包含value的列表 |
| items() | 返回包含(键值,实值)元组的列表 |
| in\not in | 判断key是否在字典中 |
dict = {
"name" : "张三",
"age" : "20",
"sex" : "男"
}
print(len(dict))
print(dict.keys())
print(dict.values())
print(dict.items())
if 20 in dict.values():
print("我是年龄")
if "李四" not in dict.values():
print("李四不存在")
'''
3
dict_keys(['name','age','sex'])
dict_values(['张三',20,'男'])
dict_items([('name','张三'),('age',20),('sex','男')])
我是年龄
李四不存在
'''
三、三种取值方式
1.value=字典名[key]
比较简单的方式,通过key值进行取值
my_dict={"name":"小红","age":20,"sex":"女"}
print(my_dict["age"])
#返回20
2.setdefault
- 格式:字典名.setdefault(k,value)
- 如果key值存在,返回对应字典的value
- 如果key值不存在,返回None,并且把新设置的key和value保存在字典中
- 如果key值不存在,但设置了value,则返回设置的value
my_dict={"name":"小红","age":20,"sex":"女"}
#如果key存在返回对应value
print(my_dict.setdefault("name"))
print(my_dict.setdefault("name","111"))
print(my_dict)
#如果key不存在,返回None,并且将设置的加入字典中
print(my_dict.setdefault("name1"))
print(my_dict.setdefault("name1","555"))
print(my_dict)
'''
小红
小红
{'name':'小红','age':20,'sex':'女'}
None
None
{'name':'小红','age':20,'sex':'女','name1':None}
'''
3.get
- 格式:字典名.get(k,value)
- 如果key值存在,返回对应字典的value
- 如果key值不存在,返回None,但是不会把新设置的key和value保存在字典中
- 如果key值不存在,但设置了value,则返回设置的value
my_dict={"name":"小红","age":20,"sex":"女"}
#如果key存在返回对应value
print(my_dict.get("name"))
print(my_dict.get("name","李四"))
#如果key不存在,返回None,不将将设置的加入字典中
print(my_dict.get("name2"))
print(my_dict.get("name2","王五"))
print(my_dict)
'''
小红
小红
None
王五
{'name':'小红','age':20,'sex':'女','name1':None}
'''
四、遍历
1.key:
for i in my_dict.keys():
print(i)
2.value
for i in my_dict.values():
print(i)
3.item
for i in my_dict.items():
print(i)
4.依次打印key和value
for key,value in my_dict.items():
print(key,value)
5.key和对应的下标索引
(enumerate()):
for i in enumerate(my_dict):
print(i)
'''
name
age
sex
小红
20
女
('name','小红')
('age',20)
('sex','女')
name 小红
age 20
sex 女
(0,'name')
(1,'age')
(2,'sex')
'''