!!!note 默写
- 有如下列表
- li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。 !!!
1.字典
2.字典的增删改查以及其他操作 3.字典的嵌套 4.预习博客!!!error 知识点
列表切片改值 将字符串一个个添加到固定位置
对原字符串的改动都会形成新的字符串,而不是改动原来的。
!!!
"repalce()使用之后如果有替换那么不替换。"if comment.upper() == Q:break for i in li: comment = comment.replace(i,"*"*len(i)) [].append(comment)
字典
字典是python的基础数据类型之一
字典可以存储大量的数据,关系型数据 python中唯一的 映射类 的数据类型
数据类型分类
可变的数据类型: list,dict
不可变的数据类型: str,int,bool,tuple
字典的键必须是可散列(可哈希)的数据类型,一般是 数字 字符串
字典的值是任意数据类型
优点
字典可以存储大量的数据,关系型数据。
查询速度快 二分查找:1到100 查7次查到2的7次幂刚好过100.散列表比这更高。
py3.5 之前无序
Py3.6 之后有序 !!!error 注意 没有索引 没有切片 !!!
增
"增,改"dic["sex"] = 男 dic.setdefault(self,k,d=None) 由此key不做任何操作返回对应的值,没有key返回设置的值dic.setdefault("boby","讲课")
删
pop(self, index=None) 不存在key报错,存在返回删除item的值dic.pop("name") 没有报错dic.pop("name",None) 没有key,不报错dic.pop("sfjls","没有此间") 没有key,把第二个参数返回回来。"清空"dic.clear() "py3.5之前随机删除并返回删除的值,3.6之后有序,默认删除最后一个"dic.popitem() 返回元组键值对del按照键删除del dic[“name”] 删除整个字典del dic
改
dic["age"] = 25两个字典的更改方式def update(self, *args, **kwargs)dic = {"name":"j","age"}dic2 = {"name":"2","weight":75}dic = {'name':'jin','age':18,'sex':'male'}dic2 = {'name':'alex','weight':75}dic2.update(dic)print(dic) 将dic2中所有的键值对覆盖并添加到dic中,dic2不变dic.update(dic2)dic.update(a=66)
查
索引方式不好,如果没有报错 keyError dic["name"]dic.get("name","没有此键")dic.get("name") 没有返回Nonedic.get("name","没有此键") 没有此key时,返回值可设置成字符串,字典
三个方法
dic.keys() dict_keys类型 类似于列表的容器 没有索引可以遍历"keys转化成列表"list(dic.keys())dic.values() dict_values类型dic.items() dic_items类型for 循环去查
分别赋值
a,b,c = [10,20,30] 个数对应a,b = b,a