python day5
Posted zm419914
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python day5相关的知识,希望对你有一定的参考价值。
一. 回顾上节课内容
列表: list, [元素, 元素]
索引: 从0开始
切片: 顾头不顾尾
增: append(), insert(), extend()
删: pop(), remove(), clear(), del
改: 索引修改, 切片修改
查: for 循环
tuple: 元组.(元素, 元素...) 如果只有一个元素. 在第一个元素后面添加一个逗号
只读列表. 能查, 不能增删改.
range():
1.只有一个参数: 0-xx
2.两个参数: 从xx-xx
3.三个参数:从xx-xx, 每xx取1个
二. 今天主要内容
1. dict字典
{}表示. 每次保存两个数据 key:value, 键值对
{"大阳哥":"赵阳", "sylar":"邱彦涛","强强":"张强强"}
value: 任意的数据类型
key: 必须是可哈希的(不可变)
字典不能切片
2. dict增删改查
1. 增: 1.添加内容可以直接使用key来进行添加 2. setdefault()
2. 删: pop(), del, clear, popitems()
3. 改: 用key改, 也可以进行update
4. 查: 用key查找.
常用操作:
1. keys()返回所有的key的列表
2. values()返回所有的value的列表
3. items() 返回所有键值的元组表示形式.
3. dict嵌套.
# dic = {"id":1, ‘name‘:‘sylar‘, "age":18, "hobby":["抽烟", "喝酒", "烫头"], "pet":("大白梨","提莫","盖伦")}
# print(dic) # 无序的. 不按照我们保存的顺序保存
# print(dic["hobby"]) # 像不像索引. key其实就是索引.
# 正确的
# dic = {2: 123, "s":"字符串", True: "abc", (1, 2, 4): "呵呵"}
# print(dic[(1, 2, 4)])
# 不正确
# dic = {[1,3,4]:"哈哈"} # unhashable type: ‘list‘
# print(dic)
# dic = {{"a":"b"}:"c"} # unhashable type: ‘dict‘
# print(dic)
# 新增
dic = {}
# dic[‘jay‘] = "周杰伦" # {‘jay‘: ‘周杰伦‘}
# dic["jay"] = "王力宏" # {‘jay‘: ‘王力宏‘}
# # 如果key存在.执行的是修改操作. 如果key不存在. 执行的是新增
# print(dic)
# dic.setdefault("王二小") # 一个参数放的是key
# dic.setdefault("王二小", "弹溜溜") # 如果key不存在. 新增
# dic.setdefault("王二小", "上片机") # 如果存在key. 不执行任何操作
# print(dic)
# dic = {}
# dic.setdefault("李嘉诚")
# dic.setdefault("李嘉诚", "房地产")
# print(dic)
# 删除
# dic = {‘朱高炽‘:None, "朱元璋":"和尚", "诸葛亮":‘不是个和尚‘}
# ret = dic.pop("朱棣") # 返回value
# print(ret)
# print(dic)
# del dic[‘朱允炆‘] # 缺点:没有返回
# print(dic)
# dic.clear() # 清空
# print(dic)
# ret = dic.popitem() # 随机删.
# print(ret)
# print(ret[0], ret[1])
# print(dic)
# 解构
# a, b = (1, 5)
# print(a)
# print(b)
# k,v = dic.popitem() # dic.popitem()的结果是一个元组. 元组可以直接解构成两个值
# print(k)
# print(v)
# dic = {‘朱高炽‘:None, "朱元璋":"和尚", "诸葛亮":‘不是个和尚‘}
# dic["朱高炽"] = "很胖的一个独眼龙"
# print(dic)
#{‘age‘: 58, ‘朱祁镇‘: 18, ‘朱棣‘: 55, ‘年轻‘: 18, ‘张无忌‘: ‘赵敏‘, ‘name‘: ‘朱由检‘}
# dic1 = {"name":‘朱高炽‘,‘age‘:58, ‘朱祁镇‘:18}
# dic2 = {"name":‘朱由检‘,‘年轻‘:18, ‘朱棣‘:55, ‘张无忌‘:‘赵敏‘}
# # update: 把dic2更新到dic1, dic1中如果存在了dic2中的key.会修改(覆盖), 如果不存在. 新增这个key:value
# dic1.update(dic2)
# print(dic1)
# print(dic2)
# lst = [1, 2, 5, 8]
# print(lst[5]) # list index out of range
# dic = {‘朱祁镇‘: 18, ‘朱棣‘: 55, ‘朱允炆‘:50}
# print(dic[‘朱见深‘]) # KeyError: ‘朱见深‘ key不存在
# print(dic.get("朱祁镇")) # dic.get("朱祁镇") == dic[‘朱祁镇‘]
# get(key, default)
# print(dic.get("朱见深", "查无此人")) # 返回none. 不存在key
# dic = {‘朱祁镇‘: 18, ‘朱棣‘: 55, ‘朱允炆‘:50}
# print(dic.keys()) # dict_keys([‘朱允炆‘, ‘朱祁镇‘, ‘朱棣‘]) 把这个当成list来看就可以了
# for el in dic.keys():
# print(el) # 拿到了key.就可以拿value
# print(dic.get(el)) # value
# dic = {‘朱祁镇‘: 18, ‘朱棣‘: 55, ‘朱允炆‘:50}
# print(dic.values())
# for el in dic.values():
# print(el)
# dic = {‘朱祁镇‘: 18, ‘朱棣‘: 55, ‘朱允炆‘:50}
# print(dic.items())
# # 从dic中获取到list列表. 列表中每一项都是一个元组(key,value) 通过解构可以直接把key和value获取到
# for k,v in dic.items():
# print(k)
# print(v)
# wangfeng = {
# ‘name‘:‘汪峰‘,
# ‘age‘:46,
# ‘wife‘:{
# ‘name‘:‘章子怡‘,
# ‘age‘:43
# },
# ‘children‘:[
# {‘name‘:‘小叮当‘,‘age‘:10},
# {‘name‘:‘大叮当‘,‘age‘:16}
# ]
# }
# 汪峰的第二个儿子的年龄
# print(wangfeng.get("children")[1].get("age"))
# print(wangfeng.get("wife").get("name"))
# print(wangfeng.get("name"))
dic = {
‘name‘:[‘alex‘,2,3,5],
‘job‘:‘teacher‘,
‘oldboy‘:{‘alex‘:[‘python1‘,‘python2‘,100]}
}
# 1,将name对应的列表追加一个元素’wusir’。
dic[‘name‘].append("wusir")
print(dic)
# 2,将name对应的列表中的alex首字母大写。
dic[‘name‘][0] = dic[‘name‘][0].capitalize()
print(dic)
# 3,oldboy对应的字典加一个键值对’老男孩’,’linux’。
dic[‘oldboy‘][‘老男孩‘] = ‘linux‘
print(dic)
# 4,将oldboy对应的字典中的alex对应的列表中的python2删除。
dic["oldboy"][‘alex‘].remove(‘python2‘)
print(dic)
以上是关于python day5的主要内容,如果未能解决你的问题,请参考以下文章