一篇帮你搞定字典

发布时间:2024年01月17日

一.了解字典,基础知识

#字典是可变的

#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"])















?

文章来源:https://blog.csdn.net/qq_59444651/article/details/135635948
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。