Python(列表、元组、集合、字典)
Python中可以通过组合一些值得到多种复合数据类型
列表
定义
通过方括号括起、逗号分隔的一组值得到
一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同
##内置方法
1.list.append(x):在列表的末尾添加一个元素x
2.list.insert(i,x):在列表索引为i的位置插入元素x
3.list.remove(x):移除列表中第一个值为x的元素,如果没有这样的元素,抛出ValueError异常
4.list.pop(i):删除索引位置的值并返回
5.list.sort():排序,默认是升序 降序:list.sort(reverse=True)
6.list.reverse():反转
7.list.clear():删除列表中所有的元素
8.list.extend(iterable):使用可迭代对象中的所有元素来扩展列表
9.list.index(x[,start[,end]]):返回指定区间内第一个x元素索引值(从0开始),如果没有指定区间则是整个列表范围
list_a=[1,2,3,4,8,5,3,3] print(list_a.index(3,3,7)) //区间是左闭右开[3,7)
10.list.count(x):返回元素x在列表中出现的次数
11.list.copy():返回列表的一个浅拷贝。相当于a[:]
注意:
insert、remove、sort方法只修改列表,没有打印出返回值——它们返回默认值None,这是Python中所有可变数据结构的设计原则
列表推导式
列表推导式:列表中的元素可以通过循环得到时,我们可以用列表推导式来书写
书写步骤:列表=[],方框里先写for循环,if判断或者嵌套子循环;然后再在括号的最前面加上列表元素的表达式
#for循环 list_square=[] for i in range(1,4): list_square.append(i**2) print(list_square) #列表推导式 list_square2=[i**2 for i in range(1,4)] print(list_square2) #列表推导式中加一个判断 list_square3=[i**2 for i in range(1,4) if i!=3] print(list_square3) #列表推导式中加入嵌套循环 list_square4=[i*j for i in range(1,4) for j in range(5,7)] print(list_square4)
元组
定义
元组使用()进行定义【tuple、list、range都是序列数据类型】,可以不加括号
元组是不可变的,可以通过解包、索引来访问
有一种特殊情况元组是可变的,如果元组里面嵌套列表,也就是元组的其中一个元素是列表,那么列表里面的元素是可变的tuple[2][1]="a"(先找到列表位置,再找到列表里面元素的位置)
元组的内置方法
1.tuple.count(x):返回元素x在元组中出现的次数
2.tuple.index(x[,start[,end]]):返回指定区间内第一个x元素索引值(从0开始),如果没有指定区间则是整个元组范围
集合
定义
集合是由不重复元素组成的无序的集
基本用法包括成员检测和消除重复元素
可以使用{}或者set()函数创建集合
要创建一个空集合只能用set()而不能用{}
##集合的内置方法
copy、clear、remove、pop与列表相似
添加元素:a.add(x)
两个集合之间的关系:
并集:a.union(b)
交集:a.intersection(b)
差集:a.difference(b)
集合推导式
a={i for i in "aaaaabbbbbbcccccdddeeefffggg"} #打印结果:{'a', 'f', 'c', 'b', 'g', 'e', 'd'}
集合的去重用法
直接用set函数
a="aaabbbbcccdddeeefffggghhhh" print(set(a)) #{'b', 'g', 'c', 'h', 'f', 'd', 'a', 'e'} print(type(set(a))) #set(a)是一个集合类型
字典
ket:value形式
以关键字为索引
关键字可以是任意不可变类型,通常是字符串或数字。
定义
两种方法定义
第一种:用{},花括号里用key:value dict1={"a":1,"b":2}
第二种:用dict函数进行定义,是key=value dict2=dict(a=1,b=2)
内置方法
1.所有value值:dict1.values()
2.所有key值:dict1.keys()
3.dict.pop(k):删除key为k的一对键值并且返回它对应的value
4.dict.popitem():删除任意的键值,并且返回删除的键值对
5.dict.fromkeys(s[,v]):创建新的以s为键的字典