python3学习之路 -- 3.6)dict

'''
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,"没有了"))  #就可处理上述得由于没有值而抛出的异常

'''字典 {}'''
"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值