python学习笔记4(数据容器)
1.数据容器类别
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
2.列表(list)
格式:
[元素1, 元素2, ......]
储存的数据类型是可以不一样的,支持嵌套.
下标索引:从0开始
反向索引:从后往前,从-1开始
3.列表(list)中的方法
查找某元素的下标:list.index(元素),找不到报错为ValueError
修改元素值:list[0]="xxx"
插入元素:list.insert(1,"yyy") 在下标为1的位置插入指定元素yyy
追加单个元素:list.append(元素) 将元素添加到列表尾部
追加一批元素:list.extend(其他数据容器) 将其它数据容器的内容取出来,依次追加到列表尾部。
删除元素:
del 列表[下标]
list.pop(下标) 有返回值,返回删除的哪个元素值
list.remove(元素)
清空列表:list.clear()
统计某个元素在列表中的数量:list.count(元素)
统计列表中一共有多少个元素:len(list)
4.元组(tuple)
元组一旦定义完成,就不可以被修改。适用于需要在程序中封装数据,又不希望封装的数据被纂改。
定义:(x1, x2, x3, ......, xn)
注意:如果只有一个元素,也要写上逗号,如 t = ("Hello",)
注意:元组里的元素是不可以修改的,但是如果元组里面嵌套了一个list,list里面的元素是可以修改的。
5.字符串(str)
字符串和元组一样,是不可以修改的,如果修改的话,只能是得到一个新的字符串。
查找:str.index(str1)
替换:newstr = str.replace(str1, str2) 将str里面的字符串1全部替换成字符串2,str本身是不会被修改的。
分割:str.split(str1) 按照str1(作为分割字符)将字符串划分成多个字符串,并存入列表中,str本身不会被修改,只是得到一个列表。
出现次数:str.count(str1) 在str中str1出现的次数
计算长度: len(str) 返回str字符串的长度
规整:
1、str.strip() 去除前后空格
2、str.strip(str1) 按照str1里面的所有单个字符,都会被去除
6.序列
序列是指内容连续,有序,可以使用下标索引的一个数据容器。
列表、元组、字符串都是可以作为序列的。
切片:序列[起始下标:结束下标:步长]
起始下标和结束下标可以不写,表示从头到尾,最后一个也会被算进去的,步长也可以不写,默认为1.
步长:依次取元素的间隔,可以是正数也可以是负数,负数则是从后面开始数,如果是-1,等同于将序列反转了。
注意:取的时候从起始下标开始,但是结束的时候不包括结束下标它本身!
7.集合(set)
集合不支持元素重复,而列表、元组、字符串都支持元素重复。
定义集合时,会自动去重,且元素的顺序和原来不一样(无序的),不支持下标索引访,问,所以遍历的时候,不能用while循环进行遍历。
定义:{元素1, 元素2, ......, 元素n}
添加新元素:set.add(元素)
移除元素:set.remove(元素)
随机取元素:set.pop() 有返回值,set集合里面中的这个元素也被除去了
清空:set.clear() set():空集合
取出两个集合的差集:set1.difference(set2) 取出set1和set2的差集(set1中有,但是set2里面没有的),返回一个新的集合,set1和set2不变
消除两个集合的差集:set1.difference_update(set2) 在set1里面,删掉和set2相同的元素,set1被修改,set2不变。
合并两个集合:set1.union(set2) 将set1和set2合并,返回一个新集合,set1和set2本身不变。
8.字典(dict)
通过Key找到对应的Value,Key是不可以重复的,重复会被覆盖掉,没有下标索引。
定义:{Key1:Value1, Key2:Value2, Key3:Value3, ......,Keyn:Valuen} 储存的是键值对
定义空字典:{} 或者 dict()
获取数据:dict[Key1] 返回值就是Value1的值
嵌套:Key的数据类型不能为字典,Value可以为字典
新增/更新:dict[Key]=Value 如果Key存在,则Value值被更新,如果不存在,则新增元素。
删除元素:dict.pop(Key) 返回Key的Value值,同时Key的数据被删除
清空字典:dict.clear()
获取全部的Key:keys = dict.keys()
遍历字典:
1、for key in keys: #通过key值遍历
2、for elem in dict: #直接遍历字典
9.数据容器的通用操作
len(容器)、max(容器)、min(容器)
容器之间的转换:
list(容器) 、tuple(容器) 、set(容器) 注意:字符串转列表\元组\集合(无序,除重)会将字符串中的每个元素都取出来作为列表的元素;字典转列表\元组\集合(无序,除重)值保存了key值
str(容器) 注意:"[1, 2, 3, 4]","(1, 2, 3, 4)",字典的Value也会被保存下来
没有转换成字典,原因是没有键值对
排序: 注意:排序后的结果都变成了列表对象
1、sorted(容器) 正向排序 (升序)
2、sorted(容器, reverse=True) 反向排序(降序)