一、列表类型list
1、用途:记录多个值(同种属性)可变类型
2、类型转换
list(*)
其中括号内可以是所有可以用for循环的数据类型,如字符串、列表、字典、元组等
3、常用操作及其内置方法
l=['a','b','c','d','e']
1、按索引存取值(正向存取+反向存取):即可存也可以取
print(l[0])
print(id(l[0]))
l[0]='A'
print(id(l[0]))
两个id的值一样,所以列表是可变类型
2、切片(顾头不顾尾,步长)
print(l[1:4])
结果:['b','c','d']
3、长度
len(l)
4、成员运算 in 、not in
5、追加值
append(3333) 追加在列表后边
assert(0,1111)
6、删除del、remove、pop
del l[0]
remove('b')
res=l.pop(0) #返回删除的那个值
7、循环
for item in l:
print(item)
4、****(需要掌握的操作)
l.count('a')
item=['1','2','3','4']
l.extend(item)
1.index('a')
l.reverse() 直接将列表反转
l.sort() 排序,默认从小到大
l.sort(reverse=True) 从大到小排序
l=[1,2,3,4,5,6]
#正向步长
l[0:3:1] #[1, 2, 3]
#反向步长
l[2::-1] #[3, 2, 1]
#列表翻转
l[::-1] #[6, 5, 4, 3, 2, 1]
二、元组类型tuple
1、用途:元组就是一个不可变的列表
2、定义方式:在()内用逗号分隔开多个任意类型的元素
强调:
l=['a']
print(type(l),l[0])
t=('a')
print(type(t))
print(t)
类型转换
t1=tuple('hello')
t2=tuple([1,2,3])
print(t1)
print(t2)
3、常用操作及其内置方法
*****(优先掌握的操作):
t=(1,2.2,'aa',('b','c'),['a','b','c'])
1、按索引取值(正向取+反向取):只能取
print(t[0])
print(t[-1])
2、切片(顾头不顾尾,步长)
t=('a','b','c','e','f')
print(t[1:4])
3、长度
print(len(t))
4、成员运算in和not in
print('a' in t)
5、循环
for item in t:
print(item)
****(需要掌握的操作)
t=('a','b','c','e','a','f')
print(t.index('a',1,5))
print(t.count('a'))
t=('a',111,['b','c'])
print(id(t[0]),id(t[1]),id(t[2]))
t[2][0]='B'
# print(t)
print(id(t[0]),id(t[1]),id(t[2]))
三、字典dict
1、用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性的功能
2、定义方式:在{}用逗号分隔开多个元素,每个元素都是key:value的形式,其中key可以不可变类型,通常是字符串类型
而value可以是任意类型
d={1:'aaa',2.2:'bbb','xxx':'ccc',(1,2,3):'dddd'} #d=dict(...)
print(d[(1,2,3)])
类型转换
d=dict(x=1,y=2,z=3)
print(d)
items=[('name','egon'),('age',18),('gender','male')]
d={}
for item in items:
d[item[0]]=item[1]
d=dict(items)
print(d)
***:
keys=['name','age','gender','height','weight']
d={}
for key in keys:
d[key]=None
d={}.fromkeys(keys,None)
print(d,type(d))
3、常用操作+内置的方法
*****(优先掌握的操作):
1、按key存取值:可存可取
dic={'name':'egon','age':18}
dic['xxxx'] #用中括号取值,没有该key会报错
print(dic.get('name')) #用get方法取值,如果该key不存在则返回None
print(dic.get('xxx'))
print(dic['name'])
dic['name']='EGON'
dic['gender']='male'
print(dic)
l=['a','b','c']
l[0]='A'
l[4]='AAA'
2、长度len
dic={'name':'egon','age':18}
print(dic)
print(len(dic))
3、成员运算in和not in :是以字典的key为准的
dic={'name':'egon','age':18}
print('name' in dic)
print('egon' in dic)
4、删除del()、pop()、popitem()
dic={'name':'egon','age':18}
del dic['name']
print(dic)
res=dic.pop('name') #pop会返回被删除的值
print(dic)
print(res)
res=dic.popitem() #删除最后一个键值对
print(res)
5、键keys(),值values(),键值对items()
在python2
>>> dic={'name':'egon','age':18}
>>> dic.keys()
['age', 'name']
>>> dic.values()
[18, 'egon']
>>> dic.items()
[('age', 18), ('name', 'egon')]
在python3
>>> dic={'name':'egon','age':18}
>>> dic.keys()
dict_keys(['name', 'age'])
>>> dic.values()
dict_values(['egon', 18])
>>> dic.items()
dict_items([('name', 'egon'), ('age', 18)])
6、循环
dic={'name':'egon','age':18}
for k in dic:
print(k)
for k in dic.keys():
print(k)
for v in dic.values():
print(v)
for k,v in dic.items(): #k,v=('name', 'egon')
print(k,v)
****(需要掌握的操作)
dic={'name':'egon','age':18}
dic={'name':'egon','age':18}
dic.update({'age':19,'gender':'male'})
print(dic)
dic={'name':'egon','age':18}
当key存在时,不改原值,返回原值
res=dic.setdefault('name','EGON')
print(dic)
print(res)
当key不存在时,增加新值
res=dic.setdefault('gender','male')
print(dic)
print(res)
四、集合类型set
1、用途:I: 关系运算 II:去重
2、定义方式:在{}内用逗号分隔开多个元素,但是元素的特点是
I: 集合内的元素必须是不可变类型
II: 集合内元素无序
III: 集合内元素不能重复
s={1,'aaa',2,} #s=set(...)
print(s,type(s))
s=set()
print(s,type(s))
s={1,1,1,1,1,1,1,1,1,1,1,1,'a','a','a'}
print(s)
数据类型转换
res=set('hello')
print(res)
res=set([1,'a','b'])
print(res)
3、常用操作以及内置的方法
*****(优先掌握的操作):
1、长度len
2、成员运算in和not in
pythons={'张铁蛋','李铜淡','王金蛋','赵银胆','alex','kevin'}
linuxs={'oldboy','张铁蛋','赵银胆','alex','wxx'}
3、|合集:求所有报名的学生
print(pythons | linuxs)
print(pythons.union(linuxs))
4、&交集:求同时报名两门课程的学生
print(pythons & linuxs)
5、-差集: 求只报名python课程的学员
print(pythons - linuxs)
print(linuxs - pythons) #求只报名linux课程的学员
6、^对称差集:求没有同时报名两门课程的学生
res=(pythons - linuxs) | (linuxs - pythons)
res=pythons ^ linuxs
print(res)
7、==
s1={1,2,3}
s2={3,2,1}
print(s1 == s2)
注意:父子集描述的是一种包含与被包含的关系
8、父集:>=
9、子集:<=
s1={1,2,3}
s2={1,2,3,4}
print(s2 >= s1)
print(s1 <= s2)
****(需要掌握的)
s1={1,2,3}
s1.update({3,4,5,6})
print(s1)
s1={1,'aa','bb',3}
print(s1.pop())
res=s1.remove('bbbbbb') #删除不存在的元素会报错
print(s1)
print(res)
s1.discard('bbb') #删除不存在的元素不会报错
s1.add(4)
print(s1)