- 列表list,用[ ]表示
列表属于复杂数据类型
1.定义一个空列表
name_list=[ ]
name_list=list( )
2.定义一个非空列表
列表元素访问时通过下标值的方法访问,即[位数]
name_list=["wyq",18,"nb"]
print(name_list[0]) 第0个表示第1位
print(name_list[-1])
3.通过下标值去修改列表元素的值
name_list[0]="wyq"
print(name_list)
列表中还可嵌套列表
name_list=["wyq",18,“nb”,["gxm",60,"lj"]]
print(type(name_list)) #<class 'list'>
print(name_list[-1][0])
切片
[start:end:step] => start默认0,end默认-1且包含-1,step默认1
names=['a','b','c','d']
print(name[1:-1:2])
列表的其他方法
names=['a','b','c','d']
print(dir(names))
1.append(object)方法:在列表中添加元素,并且默认为列表最后一个元素,添加的可以是简单数据也可以是复杂数据
names.append(“m”) 简单数据类型:元素
names.append([“m”,"n"]) 复杂数据类型:列表
print(names)
2.clear(),清空列表中的所有元素,又叫初始化
names=['a','b','c','d']
names.clear()
print(names)
3.count(object),统计列表中某个元素的个数
names=['a','b','c','d','d']
print(names.count('d'))
2
4.extend(),把两个列表合并成一个列表
name1=['a','b','c','d']
name2=['m','n']
name1.extend(name2)
print(name1)
5.index(),获取某个元素的下标值
index(object,start,step)
object:列表中某个元素 start:起始值,默认0 stop结束值,默认-1包含-1
names=['a','b','c','d']
print(names.index('d'))
3 表示第4位
names=['a','b','d','c','d','m']
print(names.index("d",3,-1))
6.insert(index下标值,object),在列表插入某一个元素
names=['a','b','d’,'c','d']
names.insert(1,'m')
print(names)
['a','m','b','d’,'c','d']
7.pop(),默认删除最后一个元素,并且返回显示被删除的元素
names=['a','b','c','d']
delete_ele=names.pop()
print(names)
print(delete_ele)
['a','b','c'] =》 删除后剩下的值
d =》已删除的元素
8.remove(object),指定删除列表中的某个元素,无返回值
names=['a','b','c','d']
delete_ele=names.remove('b')
print(names)
print(delete_ele)
['a','c','d'] =》删除后剩下的值
none =》已删除的元素不显示
9.reverse(),反转,不是排序,仅仅是把列表元素位置反转过来
names=['a','b','c','d',1,45]
names.reverse()
print(names)
[45,1,'d','c','b','a']
10.sort(),排序,只能在同一种简单数据类型之间排序
names=['m','n','a','b','c','d']
names.sort()
print(names)
['a','b','c','d','m','n']
- 元组tuple:用()表示,只能查看,不能增加,不能修改,不能删除
1.定义一个空元组
name_tuple=()
name_tuple=tuple()
2.定义一个非空元组
names=('a','b','c',['m','n'])
print(names)
3.查看元组中的元素
通过下标值访问元祖中的元素
names=('a','b','c',['m','n'])
print(names[0]) 0表示第一个
print(names[-1]) -1表示倒数第一个
4.更改元组中元素的值
元组中的元素是不可以被修改的
names=('a','b','c',['m','n'])
names[0]='d' 简单数据类型
print(names)
复杂数据类型只能修改其中某个元素,不能修改整体
names[-1][0]='d'
print(names[-1])
print(names)
5.切片
[start:end:step]
names=('a','b','c','m','n')
print(names[:-1:2])
("a","c")
元组、列表组合切片
eg:切出列表['j','k',1,2]中的"j"和1
names=('a','b','c','m','n',['j','k',1,2])
print(names[-1]) 先切出元组中的列表['j','k',1,2]
print(names[-1][:-1:2]) 再切除列表中的指定下标值的元素
6.元组的方法:index、count
names=('a','b','c','m','n')
print(dir(names))查看元素属性
统计元组中某个元素的个数
方法一:count(object)
print(names.count("a"))
方法二:index(object,start,stop):object是需要查找的元素,start默认0,stop默认-1且包含-1
print(names.index("n"))
print(names.index("a",1,-1))
- 集合set(),通过set(元组/列表)的方式,将元组或列表的数据传入集合中。
1.集合的特点
去重,无序
2.定义一个非空集合
names=['a','b','b','c','d']
names_set=set(names)
print(type(names_set))
print(dir(names_set))
<class 'set'>
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
3.定义一个空集合
names_set=set()
print(type(names_set))
<class 'set'>
4.add(element) 新增一个元素
names=['a','b','b','c','d']
names_set=set(names)
names_set.add("m")
print(names_set)
{'b', 'a', 'c', 'd', 'm'}
5.clear() 清空集合中所有元素
names=['a','b','b','c','d']
names_set=set(names)
names_set.clear()
print(names_set)
set()
6.discard() 删除集合中的某个元素,当被删除的元素不存在时也不会报错
names=['a','b','b','c','d']
names_set=set(names)
names_set.discard('c') 删除存在的元素
print(names_set)
{'d', 'a', 'b'}
7.pop() 随机删除集合中的一个元素,因为集合是无序的
names=['a','b','b','c','d']
names_set=set(names)
delete_ele=names_set.pop() 表示delete_ele=随机删除的那个元素
print(delete_ele) 打印删除的元素
b
8.remove(element) 删除列表中的某个元素
names=['a','b','b','c','d']
names_set=set(names)
names_set.remove('c') 删除已存在的元素
print(names_set)
{'a', 'b', 'd'}
names_set.remove('m') 删除不存在的元素
print(names_set)
报错
9.集合中添加一到多个元素update(简单数据类型或者列表)
names=['a','b','c']
names_set=set(names)
names_set.update('d')
name2=['m','n']
names_set.update(name2)
print(names_set)
{'d', 'n', 'a', 'b', 'c', 'm'}
- 集合关系测试
(1)交集intersection()
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set.intersection(name2_set))
{'a', 'b'}
(2)并集union()
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set.union(name2_set))
{'d', 'a', 'b', 'm', 'c'}
(3)差集difference()
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set.difference(name2_set))
{'c', 'd'}
(4)判断一个集合是否是另外一个集合的子集issubset()
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name2_set.issubset(name1_set))
false
(5)判断一个集合是否是另一个集合的父集issuperset()
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set.issuperset(name2_set))
false
(6)对称差集:两个集合不重复的部分组合成的新集合symmetric_difference()
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set.symmetric_difference(name2_set))
{'m', 'd', 'c'}
(7)判断两个集合是否有交集,如果有交集返回false,没有交集是true
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set.isdisjoint(name2_set))
false
- 关系测试,特殊符号
(1)交集 &
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set & name2_set)
{'a', 'b'}
(2)并集 |
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set | name2_set)
{'m', 'd', 'c', 'a', 'b'}
(3)差集 -
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set - name2_set)
{'d', 'c'}
(4)对称差集 ^
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set ^ name2_set)
{'m', 'd', 'c'}
(5)是否是子集 <=
name1=['a','b','c','d']
name2=['a','b','c']
name1_set=set(name1)
name2_set=set(name2)
print(name2_set <= name1_set)
true
(6)是否是父集 >=
name1=['a','b','c','d']
name2=['a','b','m']
name1_set=set(name1)
name2_set=set(name2)
print(name1_set >= name2_set)
false
浙公网安备 33010602011771号