#字典是可变的
#id没变 值变了
d0={}
print(d0,id(d0))
d0["name"]="王思聪"
print(d0,id(d0))
d={
"name":"王建林",
"age":20
}
print(d,id(d))
# 设置 字典名[键名]=值 如果键已经存在,会替换
d["name"]="王思聪"
print(d,id(d))
#获取键对应的值
print(d["name"],d["age"])
#定义字典dict
d={}
d=dict()
print(type(d))
#字典定义格式? ? ? 键(key)值(value)对
#键与值之间用冒号隔开? ?多个键值对之间使用逗号隔开
d0={
"name":"刘",
"age":20,
"addr":"郑州",
}
print(type(d0))
#字典键和值? ? ?值任意数据类型
#键不可以重复,值可以
d1={"key1":1,
"key2":3.14,
"key3":False,
"key4":None,
"key5":[1,2,3],
"key6":(100, ),
"key7":{},
"key8":{
"key10":1,
9:{"key":1}
}
}
print(d1)
# 键是不可变,键一般是字符串 五种基本类型都是不可变(int? float? bool? None? str)?
d2={"name":"刘",
"100":100,
"3.14":"pi",
"True":"布尔值",
"False":"布尔值",
"None":"空",
(): "元组不可变可以作为键"
#[]:"列表" 不可以
#{}:"字典" 不可以
}
len 获取字典键值对个数
in 判断是否有这个键
遍历:keys()? values()? ?items()
删除:value=pop(key)? 根据键删除键值对? 返回值
???????????key.value=popitem() 删除最后一个键值对并且返回元组
? ? ? ? ? ?clear() 清空
修改:updata({})将字典中的所有键值对合并到原始字典,如果键已经存在则替换
???????????dict.formkeys(keys,value) 创建一个新的字典,所有的值都是value,键来源于keys列表
???????????setdefault(key,value) 如果键不存在则添加,返回新值。如果键已经存在,不添加,返回原始数据
get:返回键取值,取不到返回None ,取不到也可以指定默认值
????????字典[键] 如果取不到会报错
#len 获取字典键值对个数
d1={
"name":"刘亦菲",
"age":20,
'addr':"郑州"
}
print(len(d1))
# #方式一 遍历字典获取key? ? ?不要用!!!!
for key in d1:
print(key,d1[key])
#方式二 遍历字典的所有键
for key in d1.keys():
print(key,d1[key])
#方式三 遍历字典的所有值
for value in d1.values():
print(value)
#方式四 遍历字典的所有键值对
for key,value in d1.items():
print(key,value)
# a,b=(10,20)
# print(a,b)
#in 判断是否有这个键
d2={
"name":"刘亦菲",
"age":20,
'addr':"郑州"
}
print(len(d2))
print("name" in d2,"sex" in d2)
#所有键
print(d2.keys())
#所有值
print(d2.values())
#所有的键值对
print(d2.items())
# 根据键删除指定的键值对 返回值
r = d2.pop("name")
print(r, d2, "name" in d2)
# 删除最后一个写的键值对(python 独有)
r = d2.popitem()
print(r, d2)
# 清空
d2.clear()
print(d2)
d3 = {
"name": "王思聪",
"age": 20,
"addr": "郑州"
}
# 如果已经存在该键 则不添加 返回原始值
# 如果不存在则添加 并且返回添加值
r = d3.setdefault("sex", "男")
print(d3, r)
#将新字典中所有键值对 合并到原有字典
d3.update({
"sex": "男",
"age": 25
})
print(d3)
d3["sex"] = "男"
#初始化一个字典
d4 = dict.fromkeys(["key1", "key2", "key3"], 100)
print(d4)
d4 = {
"name": "王思聪",
"age": 20,
"addr": "郑州"
}
# 取不到返回None
print(d4.get("name1", "马云"))
# 取不到报错
print(d4["name1"])
?