python3(元组,列表,集合,字典)
- 2020 年 1 月 12 日
- 筆記
1.列表 1)创建列表 数组:存储同一种数据类型的集合 scores=[12,13,14] 列表:(打了激素的数组):可以存储任意数据类型的集合
列表里:可以存储不同的数据类型
s=[1,4,5,'ty'] print s,type(s)
列表里面也可以嵌套列表(列表:也是一种数据类型)
s=[1,4,2,[1,4,'aa']] print s,type(s)
2)列表的特性
# # 索引 # print service[0] # print service[-1] # # 切片 # print service[::-1] # 列表的翻转 # print service[1:] # 除了第一个元素之外的其他元素 # print service[:-1] # 除了最后一个元素之外的其他元素 # # 重复 # print service * 3 # # 连接 # service1 = ['mysql','firewalld'] # print service + service1 # # 成员操作符 # print 'firewalld' in service # print 'firewalld' in service1 # print 'firewalld' not in service # for循环遍历 # print '显示服务'.center(50,'*') # for se in service: # print se
# 列表里嵌套列表 service2 = [['http',80],['ssh',22],['ftp',21]] # 索引 print service2[0][1] print service2[-1][1] # 切片 print service2[:][1] print service2[:-1][0] print service2[0][:-1]
假定有下面这样的列表: names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’] 输出结果为:’I have fentiao, fendai, fensi and apple.’
names = ['fentiao', 'fendai', 'fensi', 'apple'] print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]
3)列表的查看
service = ['http', 'ssh', 'ftp','ftp'] # 查看列表中元素出现的次数 print service.count('ssh') # 查看指定元素的索引值 print service.index('ssh')
4)列表的增加
# 1. print service + ['firewalld'] # 2.append:追加 追加一个元素到列表中 service.append('firewalld') print service # 3.extend:拉伸 追加多个元素到列表中 service.extend(['mysql', 'firewalld']) print service # 4. insert:在指定索引位置插入元素 service.insert(1,'samab') print service
5)列表的删除
service = ['http', 'ssh', 'ftp'] # #1.如果pop()不传递值的时候,默认弹出最后一个元素 # print service.pop() # # pop()也可以传递索引值 # print service.pop(0) # 2.remove:删除指定的元素 # service.remove('ssh') # print service # 3.del 关键字 从内存中删除列表 # print service # del service # print service
6)列表的修改
service = ['http', 'ssh', 'ftp'] # 通过索引,重新赋值 service[0] = 'mysql' print service # 通过切片 print service[:2] service[:2] = ['samba','ladp'] print service
2.元组(tuple) 带了紧箍咒的列表 元组本身不可变数据类型,没有增删改差 元组内可以存储任意数据类型 1)元组的创建
t = (1,2,3,4.0,'star') print t,type(t)
# 元组里面包含可变数据类型,可以间接修改元组的内容 t1 = ([1,2,3],4) t1[0].append(4) print t1 # 元组如果只有一个元素的时候,后面一定要加逗号,否则数据类型不确定 t2 = ('hello',) t3 = (1,) print type(t2),type(t3)
2)元组的特性 allowUsers = ('root','westos','fentiao') allowPasswd = ('123','456','789') # 索引 # 切片 print allowUsers[0] print allowUsers[-1] print allowUsers[1:] print allowUsers[2:] print allowUsers[:-1] print allowUsers[::-1] # 重复 print allowUsers * 3 # 连接 print allowUsers + ('fensi','fendai') # 成员操作符 print 'westos' in allowUsers print 'westos' not in allowUsers
3)元组的应用场景
# 1.变量交换数值 # a = 1 # b = 2 # b,a = a,b # # 先把(a,b)封装成了一个元组(1,2) # # b,a = a,b # # b =(1,2)[0] a=(1,2)[1] # print a,b # 2.打印变量值 # name = 'westos' # age = 10 # t = (name,age) # print 'name: %s,age: %d' %(name,age) # print 'name: %s,age: %d' %t # 3.元组的赋值:有多少个元素,就用多少个变量接收 # t = ('westos',10,100) # name,age,score = t # print name,age,score scores = (100,89,45,78,65) # scoresLi = list(scores) # scoresLi.sort() # print scoresLi scores = sorted(scores) print scores
3.集合 1)集合的定义
# 集合里面的元素是不可重复的 s = {1,2,3,1,2,3,4,5} print s,type(s) s1 = {1} print s1,type(s1) # 如何定义一个空集合 # s2 = {} # print type(s2) s3 = set([]) print s3,type(s3) # 集合的应用 li = [1,2,3,1,2,3] print list(set(li))
2)集合的特性 集合只支持 成员操作符 for循环
s = {1,2,3} #print s[0] # print s * 3 # print s + {5,4,6} print 1 in s for i in s: print i, for i,v in enumerate(s): print 'index: %s,value:%s' %(i,v)
3)集合常用的方法
s = {6, 7, 8, 1, 2, 3} # 增加 # s.add(10) # s.add(9) # print s # 增加多个元素 # s.update({4,5}) # print s # 删除 # print s # s.pop() # print s # 删除指定的元素 # s.remove(2) # print s # 交集 并集 差集 s1 = {1, 2, 3} s2 = {2, 3, 4} # 并集 print '并集:', s1.union(s2) print '并集:', s1 | s2 # 交集 print '交集:', s1.intersection(s2) print '交集:', s1 & s2 # 差集 # 可以理解为s1中有哪些s2中没有的元素 print '差集:', s1.difference(s2) # s1-(s1&s2) print '差集:', s1 - s2 # 可以理解为s2中有哪些s1中没有的元素 print '差集:', s2.difference(s1) # s2-(s1&s2) print '差集:', s2 - s1 # 对等差分:并集-交集 print '对等差分:', s1.symmetric_difference((s2)) print '对等差分:', s1 ^ s2 s3 = {1, 2} s4 = {1, 2, 3} # s3是否为s4的子集 print s3.issubset(s4) # s3是否为s4的超集 # 什么是超集:如果s3中的每一个元素都在集合s4中,且 # s4中可能包含s3中没有的元素,则s4就是s3的一个超集 print s3.issuperset(s4) # 两个集合是不是不相交 print s3.isdisjoint(s4)
python中常用的内置方法
# 枚举:返回索引值和对应的value值 # s = 'hello' # for i in s: # print i # for i,v in enumerate('hello'): # print i # print type(i) # print v # print type(v) # print str(i) + '---->' + v # s1 = 'abc' # s2 = '123' # # for i in zip(s1,s2): # #print i # print '-'.join(i)
4.字典 1)字典的定义 字典是一个无序的数据集合,使用print输出字典的时候 通常输出的顺序和定义的顺序是不一致的
# message = { # 'name':'tom', # 'age':18, # 'height':1.80, # 'weight':75.5 # } # print message # s = {} # print type(s) # s = { # 'fentiao':[100,90,80], # 'westos':[199,199,199] # } # print s d = dict() print d,type(d) d = dict(a=1,b=2) print d,type(d)
2)字典的增加
d = dict(a=1, b=2) # print d # # 添加或者更改key-value对 # d['g'] = 10 # print d # d['a'] = 10 # print d """ update: 如果key值存在,更新value值 如果key值不存在,添加key-value值 """ # d.update({'a':4,'f':1}) # print d """ setdefault 如果key值已经存在,不做修改 如果key值不存在,添加key-value值 """ d.setdefault('a',10) print d
3)字典的删除
d = dict(a=1, b=2,c=3) # pop:弹出指定的key-value值 # d.pop('a') # print d # print d # d.popitem() # print d del d['a'] print d
4)字典的修改和查看
service = { 'http':80, 'mysql':3306 } # 查看字典里面所有的key值 print service.keys() # 查看字典里面所有的value值 print service.values() # 查看字典里面所有的key-value值 print service.items() # 遍历 for k,v in service.items(): print k,'---->',v for k in service: print k,'----->',service[k] # print service['https'] # if 'https' in service: # print service['https'] # else: # print 'key not exist' """ get方法获取指定key对应的value值 如果key值存在,返回对应的value值 如果key值不存在,默认返回None,如果需要指定返回值,传值即可 """ print service.get('http','key not exist')