'''
1. 字典以键值对形式存储数据
2. 表示方式;{key:value,key2:value2,key3:value3}
3. 字典的key必须是可哈希的数据类型
4. 字典的value可以是任何数据类型
dic = {"1001":"张三","10":"李四"}
val = dic['10'] #用起来只是把索引换成了key
print(val)
#==============================5. 字典的增删改查==============================
# 增
dic = dict()
dic['1001'] = "张三"
dic['1003'] = "李四"
print(dic)
# 改
dic['1001'] = "王五" #此时字典已经有1001,执行的就是修改操作
print(dic)
dic.setdefault("tom","hehe") #设置默认值,如果以前已经有tom,setdefault就不起作用
print(dic)
dic.setdefault("1001","哈哈哈") #设置默认值,如果以前已经有tom,setdefault就不起作用
print(dic)
# 删
dic.pop("tom") #根据key删除
# 查
print(dic['1001'])
print(dic.get('1001'))
#print(dic['1004']) # 如果key不存在,程序报错。当你确定key没问题时用
print(dic.get('1004')) # 如果key不存在,程序返回None。当不确定key时用
# None
a = None #单纯的就是空,表示没意思
print(type(a)) #<class 'NoneType'>
#==============================6. 字典的循环和嵌套==============================
#----------------循环----------------
dic = {
"1001":["张三","男"],
"1002":"李四",
"1003":"10岁"
}
#1. 使用for循环
for key in dic:
print(key,dic[key])
#2. 希望把所有的key保存到列表中
print(dic.keys()) #dict_keys(['1001', '1002', '1003'])
print(list(dic.keys())) #['1001', '1002', '1003']
#3. 希望把所有的value放到列表
print(list(dic.values())) #[['张三', '男'], '李四', '10岁']
#4. 直接拿到字典中的key和value
print(dic.items()) #dict_items([('1001', ['张三', '男']), ('1002', '李四'), ('1003', '10岁')])
print(list(dic.items())) #[('1001', ['张三', '男']), ('1002', '李四'), ('1003', '10岁')]
for item in dic.items():
key = item[0]
value = item[1]
print(key,value)
“”“
1001 ['张三', '男']
1002 李四
1003 10岁
“”“
#如上修改实现方式 -- 解包
for item in dic.items():
print(item)
key,value = item
print(key,value)
# 再简化 直接拿到key和value
for key,value in dic.items():
print(key,value)
“”“
1001 ['张三', '男']
1002 李四
1003 10岁
”“”
#----------------嵌套----------------
# 字典的嵌套
wangzhe = {
"name":"蔡文姬",
"age":3,
"friend":{
"name":"lan",
"hobby":"杀"
},
"huoban":{
"name":"小鹿般"
},
}
# wangzhe friend的name
print(wangzhe['friend']['name']) #lan
print(wangzhe['age']+1) #4
#==============================7. 字典的循环删除 - 补充==============================
dic = {
"1001":["张三","男"],
"1002":"李四",
"2003":"10岁"
}
tmp = [] #存放即将要删除的key
for key in dic:
if key.startswith("2"):
#dic.pop(key) #RuntimeError: dictionary changed size during iteration
tmp.append(key)
for item in tmp: #循环列表,删除字典中的内容
dic.pop(item)
print(dic) #{'1001': ['张三', '男'], '1002': '李四'}
'''
'''
1. 字典以键值对形式存储数据
2. 表示方式;{key:value,key2:value2,key3:value3}
3. 字典的key必须是可哈希的数据类型
4. 字典的value可以是任何数据类型
dic = {"1001":"张三","10":"李四"}
val = dic['10'] #用起来只是把索引换成了key
print(val)
#==============================5. 字典的增删改查==============================
# 增
dic = dict()
dic['1001'] = "张三"
dic['1003'] = "李四"
print(dic)
# 改
dic['1001'] = "王五" #此时字典已经有1001,执行的就是修改操作
print(dic)
dic.setdefault("tom","hehe") #设置默认值,如果以前已经有tom,setdefault就不起作用
print(dic)
dic.setdefault("1001","哈哈哈") #设置默认值,如果以前已经有tom,setdefault就不起作用
print(dic)
# 删
dic.pop("tom") #根据key删除
# 查
print(dic['1001'])
print(dic.get('1001'))
#print(dic['1004']) # 如果key不存在,程序报错。当你确定key没问题时用
print(dic.get('1004')) # 如果key不存在,程序返回None。当不确定key时用
# None
a = None #单纯的就是空,表示没意思
print(type(a)) #<class 'NoneType'>
#==============================6. 字典的循环和嵌套==============================
#----------------循环----------------
dic = {
"1001":["张三","男"],
"1002":"李四",
"1003":"10岁"
}
#1. 使用for循环
for key in dic:
print(key,dic[key])
#2. 希望把所有的key保存到列表中
print(dic.keys()) #dict_keys(['1001', '1002', '1003'])
print(list(dic.keys())) #['1001', '1002', '1003']
#3. 希望把所有的value放到列表
print(list(dic.values())) #[['张三', '男'], '李四', '10岁']
#4. 直接拿到字典中的key和value
print(dic.items()) #dict_items([('1001', ['张三', '男']), ('1002', '李四'), ('1003', '10岁')])
print(list(dic.items())) #[('1001', ['张三', '男']), ('1002', '李四'), ('1003', '10岁')]
for item in dic.items():
key = item[0]
value = item[1]
print(key,value)
“”“
1001 ['张三', '男']
1002 李四
1003 10岁
“”“
#如上修改实现方式 -- 解包
for item in dic.items():
print(item)
key,value = item
print(key,value)
# 再简化 直接拿到key和value
for key,value in dic.items():
print(key,value)
“”“
1001 ['张三', '男']
1002 李四
1003 10岁
”“”
#----------------嵌套----------------
# 字典的嵌套
wangzhe = {
"name":"蔡文姬",
"age":3,
"friend":{
"name":"lan",
"hobby":"杀"
},
"huoban":{
"name":"小鹿般"
},
}
# wangzhe friend的name
print(wangzhe['friend']['name']) #lan
print(wangzhe['age']+1) #4
#==============================7. 字典的循环删除 - 补充==============================
dic = {
"1001":["张三","男"],
"1002":"李四",
"2003":"10岁"
}
tmp = [] #存放即将要删除的key
for key in dic:
if key.startswith("2"):
#dic.pop(key) #RuntimeError: dictionary changed size during iteration
tmp.append(key)
for item in tmp: #循环列表,删除字典中的内容
dic.pop(item)
print(dic) #{'1001': ['张三', '男'], '1002': '李四'}
'''
"""补充部分
'''拼接'''
print([1,2,3] + [4,5,6]) #列表拼接还是列表 打印:[1, 2, 3, 4, 5, 6]
print((1,2,3) + (4,5,6)) #元组拼接还是元组 打印:(1, 2, 3, 4, 5, 6)
print("123" + "456") #字符串拼接还是字符串 打印:123456
'''列表 元组 字符串想换转换得函数 list()、tuple()、str()'''
print(list("Abcde")) #字符串转为列表 ['A', 'b', 'c', 'd', 'e']
'''比较 min() max()'''
'''列表排序函数 sorted() reverse()'''
t = ["Apple","Pen","Book","Home","Banana"]
print(sorted(t,key=len)) #打印['Pen', 'Book', 'Home', 'Apple', 'Banana']
print(sorted(t,reverse=True)) #打印['Pen', 'Home', 'Book', 'Banana', 'Apple']
print(sorted("Abcde")) #打印 ['A', 'b', 'c', 'd', 'e']
print(sorted((1,9,2,4,0))) #打印 [0, 1, 2, 4, 9]
'''all() any()是否存在某个元素得值为真'''
'''azip() map() filter()'''
'''迭代器 可迭代对象 iter() next()'''
x = [1,2]
y = iter(x)
print(next(y)) #next 一个个提取出迭代器中得元素 打印:1
print(next(y)) #打印:2
rint(next(y)) #打印:异常
z = iter(x)
print(next(y,"没有了")) #就可处理上述得由于没有值而抛出的异常
'''字典 {}'''
"""
python3学习之路 -- 3.6)dict
于 2022-05-16 08:56:33 首次发布