列表常用方法及元祖、字典、集合的内置方法

时间:2022-09-03 07:26:05

一 、列表(可变类型)常用方法

l = [1,2,3,4,5,6,7]

1.计数:.count()

   print(l.count(7))>>>7

2.删除:.clear()

   print(l)>>>[1, 2, 3, 4, 5, 6, 7]

   res = l.clear()

   print(res)>>>None

3.列表反转:.reverse()

   res = l.reverse()

   print(l)

4.排序:.sort() 默认情况下是从小到大(升序)

   l1 = [21,656,48,75,30]

   l1.sort()

   print(l1)>>>[21, 30, 48, 75, 656]

   l1.sort(reverse = True)  通过指定参数来修改默认值的排序规则(降序)

   print(l1)

总结:能存多个值、有序的(可索引)、可变

二、队列    先进先出:采用.append() .pop()方法

l1 = []

先进:

l1.append('first')

l1.append('second')

l1.append('third')

print(l1)>>>['first', 'second', 'third']

先出:

print(l1.pop(0))>>>first

print(l1.pop(0))>>>second

print(l1.pop(0))>>>third

三、堆栈   先进后出:采用.append() .pop()方法

l1 = []

先进:

l1.append('first')

l1.append('second')

l1.append('third')

后出:

print(l1.pop())>>>third

print(l1.pop())>>>second

print(l1.pop())>>>first

四、元组(tuple)

作用:能够存储多个元素,元素与元素之间逗号隔开,元素可以是任意类型,元素不能被修改。

定义:age = (1,2,3,4,5,6)等价于 age = tuple((1,2,3,4,5,6))

t = (1,2,3,'c','d',[1,3,5])

print(type(t))>>><class 'tuple'>

t1 = tuple(1) #报错:必须传容器类型

1.按索引取值(正取向+反取向)

print(t[5])>>>[1, 3, 5]

t[1] = 'abcd'

print(t)>>>报错 不可改变元组内元素

t[-1][0] = 'abcd'

print(t)>>>(1, 2, 3, 'c', 'd', ['abcd', 3, 5])

del t[0]

print(t)>>>报错 元组内的元素不可改变

2.切片(顾头不顾尾,步长)

print(t[ : :2])>>>(1, 3, 'd')

3.长度

print(len(t))>>>6

4.成员运算in和not in

print('a' in t)>>>True

5.循环

for i in t:

   print(i)

列表常用方法及元祖、字典、集合的内置方法

print(t.count('a'))>>>0

print(t.index('xxx'))>>>报错 不存在即报错

总结:1.能存多个值 2.有序 3.不可变

五、字典及内置方法

作用:能存存储多组 key:value键值对  key是对value的描述  key通常情况下都是字符串

定义:d = {'name':'jason','password':123}

1.按key存取值:可存可取

d1 = {'name':'zzj','password':'123'}

print(d1['name'])>>>zzj

d1['name'] = 'angela'

print(d1)>>>{'name': 'angela', 'password': '123'}

d1['age'] = '18'

print(d1)>>>{'name': 'angela', 'password': '123', 'age': '18'}  #赋值语句当key不存在的情况下,会自动新增一个键值对

2.统计长度len

d1 = {'name':'zzj','password':'123'}

print(len(d1))>>>2

3.成员运算in 和not in  对于字典来说只能判断key值

d1 = {'name':'jason','password':'123'}

print('123' in d1)>>>Flase

print('name' in d1)>>>True

4.删除

d1 = {'name':'zzj','password':'123'}

del d1['name']

print(d1)>>>{'password': '123'}

d1.clear()

print(d1)>>>{}

5.键keys(),值value(),键值对items()

d1 = {'name':'zzj','password':'123' }

print(d1.keys())>>>dict_keys(['name', 'password'])

print(d1.values())>>>dict_values(['zzj', '123'])

print(d1.items())>>>dict_items([('name', 'zzj'), ('password', '123')])

6.get()根据key获取value

d1 = {'name':'zzj','password':'123' }

print(d1.get('name')>>>zzj

print(d1.get('age','age不在字典的key中'))>>>age不在字典的key中

7.dict.fromkeys()

l1 = ['name','pwd','hobby']

print(dict.fromkeys(l1,123456))>>>{'name': 123456, 'pwd': 123456, 'hobby': 123456}

8.dict.popitem()

print(d1.popitem())>>>('password', '123')  #尾部以元组的形式弹出键值对

9.dict.setdefault()

d1 = {'name' : 'zzj','pwd' : '123'}

res = d1.setdefault('name','angela') #当键存在的情况下,不修改值,并且将原先的key对应的值返还给用户

print(res)

res1 = d1.default('age',18)#当键值不存在的情况下,新增一个键值对。并将新增的键值对的值返还给用户

print(res1)

10.dict.update()

d1 = {'name':'zzj','age':18}

d2 = {'hobby':'read'}

d1.update(d2)

print(d1)>>>{'name': 'zzj', 'age': 18, 'hobby': 'read'}

11.循环

d1 = {'name':'zzj','age':'18'}

for i in d1:

     print(i)>>>>name age

六、集合

pythons = ['jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex']

linux = ['frank', 'jerry', 'tank', 'egon', 'alex'] 

for name in pythons:

   if name in linux:

        print(name)

 列表常用方法及元祖、字典、集合的内置方法

用一个取两个列表中的交集,引出接下来要说的集合:

作用:去重、关系运算

定义:s = {1,2,3,4,5,6}

          print(type(s))>>><class 'set'>

可以包含多个元素,用逗号分割。

 

1.集合的元素遵循三个原则:

1,每个元素必须是不可变类型

可变:不可hash

不可变:可hash

s = {1,2,3,4,5,6,'a','v',(1,2),[1,2]} #报错

2,没有重复的元素

s = {1,1,1,1,2,2,2,3,3,3,4,5,5,5,6,6}

print(s)>>>{1, 2, 3, 4, 5, 6}

3,无序

2.长度len

s = {1,2,3,4}

print(len(s))>>>4

3.成员运算in 和 not in

print(1 in s)>>>True

print(5 in s)>>>Flase

4.集合间的关系

pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'}

linux = {'frank', 'jerry', 'tank', 'egon', 'alex'}

pythons和linux都报名的学生:

print(pythons&linux)>>>{'tank', 'egon', 'alex'}

报名了pythons,但是没有报名linux的学生:

print(pythons-linux)>>>{'kevin', 'jason', 'nick', 'owen'}

报名了linux,但没有报名pythons的学生:

print(linux-pythons)>>>{'frank', 'jerry'}

没有报名一样课程的学生:

print(pythons^linux)>>>{'jason', 'frank', 'nick', 'owen', 'kevin', 'jerry'}

所有报了名的学生:

print(pythons|linux)>>>{'jason', 'tank', 'nick', 'owen', 'alex', 'frank', 'kevin', 'jerry', 'egon'}

5.删除

   s = {1,2,3,4,5}

   s.add(666)

   print(s)>>>{1, 2, 3, 4, 5, 666}

   s.add((1,2,3,4))

   print(s)>>>1, 2, 3, 4, 5, (1, 2, 3, 4), 666}

   s.remove(6)

   print(s)>>># 若不存在这个数,则直接报错

   print(s.discard(888888888))

   print(s)>>>#若不存在这个数,则返回一个None