目录导航

  • 列表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

posted on 2021-01-21 15:18  EugeniaWang  阅读(64)  评论(0)    收藏  举报