一 、列表(可变类型)常用方法
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