python字典

176 阅读3分钟

🐋字典

一、基础知识

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')
'''