字典:
- 字典用 {} 表示
- 数据类型: dict
- 字典的存储方式: key=value -- 键对应值
- 只有不可变的数据类型才能作为 key -- []不能作为key
- 字典的 value 可以是任意数据类型
4.字典是无序的数据集合,不能根据索引来取值
5.字典用 key 来取 value
-
dic = {"1":110,"2":666}
n = dic["1"]
print(n)
6.字典可以被for循环,默认循环字典的 key
字典的方法
-
dic = {"1":"周杰伦","2":"周星驰","3":"大坏男孩"}
# 取字典的key
for i in dic.keys():
print(i)
# 取字典的值
for i in dic.values():
print(i)
# 取字典的键值,元祖(key,value)
for i in dic.items():
print(i)
-
# update(key=value)
# key不能是数字,只能是字母、下划线和中文
# 如果key存在,则修改value;key不存在,则新增
dic.update(idol = "星爷")
print(dic)
dic.update(idol = "前女友")
print(dic)
# update({key:value})
# 循环传入的字典,把key和value添加或者修改,组成新的键值对
dic.update({'男神':"胡歌","女神":"母上大人"})
print(dic)
dic.update({"1":"Jay"})
print(dic) -
#setdefault(key,value)
# 如果key存在,则不做任何操作;key不存在,则把传入的key和value组成新的键值对
dic.setdefault("4","My ideal")
print(dic)
dic.setdefault("1","Joy")
print(dic) -
# 根据key删除value,key不存在,则报错
dic.pop("3")
print(dic)
dic.pop("4") -
# clear() 清空字典
dic = {"1":"周杰伦","2":"周星驰","3":"李叶彬"}
dic.clear()
print(dic) -
# 删除字典:del
del dic
print(dic) -
# 浅拷贝:copy()
n = dic.copy()
print(n) -
# dic.get(key, message)
# 如果key存在,则返回value;如果key不存在,则默认返回None:message不为空,返回自己定义的内容
n = dic.get("3")
print(n)
m = dic.get("4")
print(m)
p = dic.get("4","666")
print(p) -
# fromkeys(iterable,value) iterable(能被迭代,能被for循环的数据。例如:字符串、列表、元祖)
# 元素和value一一对应,组成键值对,返回一个新的字典
d = dic.fromkeys([1,2,3],"My idol")
print(d)
print(type(d))
随堂练习
-
dic = {
"k": [
2,
3,
"hello",
{
"hello": {
"a": "b"
},
False: (
2, 3, 4, {
"kk2": {"abc": [4, 5, 6, {"kk3": 888}]}
}
)
}
]
}
# 通过for循环取出dic字典所有数字的和
n = 0
for i in dic.values():
print(i)
for i1 in i:
if type(i1) == int:
n = n + i1
print(n)
elif type(i1) == dict:
print(i1)
for i2 in i1.values():
if type(i2) == tuple:
print(i2)
for i3 in i2:
if type(i3) == int:
n = n + i3
print(i3)
print(n)
else:
print(i3)
for i4 in i3.values():
print(i4)
for i5 in i4.values():
print(i5)
for i6 in i5:
if type(i6) == int:
n = n + i6
else:
print(i6)
for i7 in i6.values():
n = n + i7
print(i7)
print(n)
print(n)
# 打印出dic字典的值888
a = dic.get("k")[-1].get(False)[-1].get("kk2").get("abc")[-1].get("kk3")
print(a)