# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @File : Python基础知识(五).py# @Software : PyCharm Python基础知识(五)今日内容大纲:昨日内容回顾 list: 增:append() insert(index,object) extend() 迭代着追加 删: pop 默认删除最后一个,按照索引去删除,有返回值。 remove 按照元素去删除。 clear 清空列表。 del l1 删除列表 del l1[index] 按照索引删除 del l1[0:3] 按照切片删除 del l1[0:3:3] 按照切片+步长删除 改: l1[2] = 'chun' l1[1:3] = 'chun' 迭代着添加 l1[1:4:2] = [1,33] 查: 索引,切片,切片(步长) for 循环 index : 通过元素查询索引 count : 查找某个元素在列表中的个数 sort : 排序,默认从小到大排序 sort.(reverse(True)) 从大到小 l1.reverse() len() : 统计列表中元素的总个数。(也就是列表的长度) l1 = [1,2,['wan','chun'],33]l1[1] = 200l1[2][0] = l1[2][0].upper() 元组: (1,'chun',True) 查:索引,切片,切片(步长)、for 循环 index count len() (1,'chun',True,[1,2,3]) range() : 当做 可控范围的数字列表 与 for 循环结合。 字典 dict why: 1,列表如果存储大量的数据,查询速度相对慢一些。 2,列表存储的数据一般没有什么关联性。 [小潘, 175, 男,......] 针对以上因素,python提供了一个基础数据类型:dict字典。 数据类型的分类: 容器型数据类型:list,tuple,dict set。 非容器型数据类型:str bool int。 可变(不可哈希)的数据类型:list,dict,set。 不可变(可哈希)的数据类型:str,bool, int,tuple (1, 2, 'alex', [1,2,3,]) b1 = True b1 = False l1 = [1, 2, 3] l1.append(666) what:字典: {'name': 'alex'} 以键值对形式存储的数据类型。 1,字典的键必须是不可变(可哈希hash)的数据类型,唯一的不重复。 字典的值可以是任意数据类型(对象)。 2,字典的查询速度非常快。 3,字典在3.5包括3.5之前是无序的,但是3.6优化机制,字典会按照创建字典之初的顺序排列。 4,字典可以存储大量的关联性数据。 {'name': 'alex','python3期':['小潘','春哥', '二师兄'], '太白':{ 'name':'太白金星', 'id': 1306546743423, 'phone': 1358225xxxx, 'sex': '男' } } how: 增删改查 其他操作 where: 当你想构建大量的关系型数据的时候,用到dict 字典的嵌套 集合(了解) dic = {"name":"chun" ,"age":20 ,"sex":"man"}字典的 增删改查==================>增有则覆盖,有则添加dic["height"] = 175dic["age"] = 21print(dic) setdefault() 有则不变,无则添加dic.setdefault('hight')dic.setdefault("hight",175)dic.setdefault("name","三斤春药")print(dic) =======================>删pop 通过键key 去删除键值对ret = dic.pop("age")print(dic) # 有返回值 返回对应的值 ret1 = dic.pop("name2",'没有此键') # 没有此键 就不报错并且设置返回值print(ret1)print(dic) clear 清空dic.clear()print(dic) popitem 删除最后一个键值对3.5之前是随机删除,3.6删除最后一个键值对ret = dic.popitem()print(ret)print(dic) deldel dicprint(dic) del dic["age"]print(dic) =========================>改dic["age"] = 21print(dic) dic1 = {"name":"三斤春药" ,"age":20 ,"sex":"男"}dic2 = {"name":"chunge" ,"weight":65}dic2.update(dic1)print(dic1)print(dic2)将dic1字典中的键值对覆盖添加到dic2中,dic1不变.{'name': '三斤春药', 'age': 20, 'sex': '男'}{'name': '三斤春药', 'weight': 65, 'age': 20, 'sex': '男'}dic.update(weight=150,hight=175)dic.update(weight=150,hight=175)print(dic) =======================》查按照键 查对应的值print(dic['name'])print(dic['name2']) # 没有此键会报错 ret = dic.get('age')ret2 = dic.get('age2')ret3 = dic.get('age2',"没有此键")print(ret)print(ret2)print(ret3) 直接 for 循环字典 来获取的是 key键:for i in dic: print(i) dic.keys() dic.values() dic.items()上面三个都是返回一个类似于列表的容器的特殊数据类型print(dic.keys())for i in dic.keys(): print(i) print(dic.values())for i in dic.values(): print(i) print(dic.items())for i in dic.items(): print(i) 分别赋值a,b = 100,200print(a,b) a,b,c = (1,2,3)a,b,c = [1,2,3]print(a,b,c) a = 50b = 30a,b = b,aprint(a,b) # 30 50 for k,v in dic.items(): print(k,v)结果是 : name chun age 20 sex man 字典的嵌套: l1 = ["chun",'alex']print(l1[0].upper())l1[0] = l1[0].upper()print(l1) dic = { 'l1':['chun','三斤春药'], 'id':666, 1:{ 'date':20181225, 'place':'深圳骑士计划', 'class':'Python3期', 'name_list':['周万春','chun','春哥','xx'] }}1,给小列表['chun', '三斤春药'] chun后面插入一个字符串,'aaa'dic['l1'].insert(1,'aaa')dic2 = {'l1':['chun','aaa','三斤春药']}dic.update(dic2)print(dic) 2,将id对应的666变成 1dic['id'] = 1print(dic) 3,将 1 对应的字典的data变成20181224 .dic2 = dic[1]dic2['date'] = 20181224dic[1]['date'] = dic[1]['date'] - 1dic[1]['date'] -= 1print(dic) 4,将name_list对应的chun全部变成大写。print(dic[1]['name_list'][1].upper())dic[1]['name_list'][1] = dic[1]['name_list'][1].upper()print(dic) 5,将name_list对应的 xx 删除。dic[1]['name_list'].pop(-1)dic[1]['name_list'].remove('xx')del dic[1]['name_list'][-1]print(dic) 格式化输出 %s第一种方式:msg = '我叫%s,今年%d,性别%s。' %('三斤春药',21,'男')print(msg)第二种方式: 通过字典的方式dic = {'name':'三斤春药','sex':'男','age':18}msg = '我叫%(name)s,今年%(age)s,性别%(sex)s。' % dicprint(msg) fromkeys() 也是创建字典的一种方式dic = {'name':'chun'}dic = dict.fromkeys('abc','春哥')dic = dict.fromkeys([1,2,3],'春哥')dic = dict.fromkeys([1,2,3],[])坑:值如果是可变的数据类型,那么所有的值都是一个内存地址dic = dict.fromkeys([1, 2, 3], ['chun'])dic[1].append(666)print(dic)