python学习的第六天数据类型及内置方法part2
Posted yehuihuihui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习的第六天数据类型及内置方法part2相关的知识,希望对你有一定的参考价值。
一、元祖:就是一个不可变的列表
1、用途:用于存放多个值,当存放的多个值只能读的需求没有改的需求时用元祖最合适
2、定义方式:在()内用逗号分隔开多个任意类型的值
# t=(1,) # print(t,type(t)
3、常用的操作和内置的方法
(1)按索引取值(正向取,反向取):只能取
(2)、切片(顾头不顾尾,步长)
# t=(\'h\',\'e\',\'l\',\'l\',\'o\') # res=t[1:3] # print(res) # print(t)
(3)长度(len)
(4)成员运算in和not in
(5)循环
# t=(\'h\',\'e\',\'l\',\'l\',\'o\') # for item in t: # print(item)
4、总结:
(1)存多个值
(2)有序
(3)不可变
*掌握的方法
索引元素的位置:对于没有的元素会报错
t=(\'a\',\'b\',\'a\') print(t.index(\'a\')) 0
二、字典
1、用途:用来存放多个(不同种类的)值
2、定义方式:用{}内用逗号 分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(int/float/str/tuple)
3、常用操作和内置方法
(1)、按key存取值:可存可取
(2)长度len
(3)成员运算in和not in
(4)删除
d={\'x\':1,\'y\':2,\'z\':3} # del d[\'y\'] # print(d) 无反值 # res=d.pop(\'y\') # print(d) # print(res) 有返值,是key对应的值 # res=d.popitem() # print(res) 有返值,是key和其value
(5)键key(),值value(),键值对items()
d={\'name\':\'egon\',\'age\':18,\'sex\':\'male\',\'hobbies\':[1,2,3]} # # print(d.keys()) # print(list(d.keys())) # # # print(d.values()) # print(list(d.values())) # # print(d.items()) # print(list(d.items()))
(6)循环
# for k,v in d.items(): #k,v=(\'name\', \'egon\') # print(k,v)
4、总结:
(1)存多个值
(2)无序
(3)可变
5掌握的操作:
(1)get方法
可以取值
d={\'name\':\'egon\',\'age\':18,\'sex\':\'male\',\'hobbies\':[1,2,3]}
d.get(name)相当于d[\'name\'}
可以判定key在不在字典里面而不报错
v=d.get(\'namexxxxxxx\')
print(v) None
(2)updata方法:将一个字典合并到里面
d={\'name\':\'egon\',\'age\':18,\'sex\':\'male\',\'hobbies\':[1,2,3]} d.update({\'x\':1,\'name\':"EGON"}) print(d)
{\'name\': \'EGON\', \'age\': 18, \'sex\': \'male\', \'hobbies\': [1, 2, 3], \'x\': 1}
(3)fromkeys
# fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表 # keys=[\'name\',\'age\',\'sex\'] # # d={} # # for k in keys: # # d[k]=None # # d={}.fromkeys(keys,None) # print(d)
(4)按照默认的操作形式
# d[\'x\']=1111 # key存在则修改 # d[\'z\']=1111 #key不存在则新增
# 按照setdefault的形式 # d={"x":1,"y":2} # res=d.setdefault(\'x\',11111) # 在key存在的情况下不修改值,会返回原值 # print(d) # print(res) # res=d.setdefault(\'z\',11111) # 在key不存在的情况下会新增值,会返回新增的值 # print(d) # print(res)
三、集合(set)
1、什么是集合
在{}内用逗号分隔开多个值,集合的特点
(1)每个值必须是不可变类型
(2)集合无序
(3)集合内元素不能重复
2、为何要用集合
(1)用去做关系运算
(2)去重
3、如何用集合
(1)集合的第一大用途:关系运算
pythons={\'egon\',\'张铁蛋\',\'李铜蛋\',\'赵银弹\',\'王金蛋\',\'艾里克斯\'} linuxs={\'欧德博爱\',\'李铜蛋\',\'艾里克斯\',\'lsb\',\'ysb\',\'wsb\'} # 1 求同时报名两门课程的学生姓名:交集 # print(pythons & linuxs) # print(pythons.intersection(linuxs)) # pythons=pythons & linuxs # print(pythons) #{\'李铜蛋\', \'艾里克斯\'} # pythons.intersection_update(linuxs) #pythons=pythons.intersection(linuxs) # print(pythons) #{\'艾里克斯\', \'李铜蛋\'} # 2 求报名老男孩学校课程的所有学生姓名:并集 # print(pythons | linuxs) # print(pythons.union(linuxs)) # 3 求只报名python课程的学生姓名: 差集 # print(pythons - linuxs) # print(pythons.difference(linuxs)) # print(linuxs - pythons) #求只报名linux课程的学生姓名 # print(linuxs.difference(pythons)) # 4 求没有同时报名两门课程的学生姓名: 对称差集 # print((pythons - linuxs) | (linuxs - pythons)) # print(pythons ^ linuxs) # print(pythons.symmetric_difference(linuxs)) # 5 父子集:指的是一种包含与被包含的关系 # s1={1,2,3} # s2={1,2} # print(s1 >= s2) # print(s1.issuperset(s2)) # print(s2.issubset(s1))
# 情况一: # print(s1 > s2) #>号代表s1是包含s2的,称之为s1为s2的父集 # print(s2 < s1) # 情况二: # s1={1,2,3} # s2={1,2,3} # print(s1 == s2) #s1如果等于s2,也可以称为s1是s2的父集合 # 综上: # s1 >= s2 就可以称为s1是s2的父集
交集(&)、并集(|)、差集(-)、对称差集(^)、父子集(包含和被包含关系)
(2)集合的第二大用途:去重
集合去重的局限性:
#1会打乱原值的顺序(无序)
#2只能针对不可变的值去重
# stus=[\'egon\',\'lxx\',\'lxx\',\'alex\',\'alex\',\'yxx\'] # new_l=list(set(stus)) # print(new_l) # # old_l=[1,[1,2],[1,2]] # set(old_l)
对于可变的值去重可以:
l=[ {\'name\':\'egon\',\'age\':18,\'sex\':\'male\'}, {\'name\':\'alex\',\'age\':73,\'sex\':\'male\'}, {\'name\':\'egon\',\'age\':20,\'sex\':\'female\'}, {\'name\':\'egon\',\'age\':18,\'sex\':\'male\'}, {\'name\':\'egon\',\'age\':18,\'sex\':\'male\'}, ] # new_l=[] # for dic in l: # if dic not in new_l: # new_l.append(dic) # print(new_l)
[{\'name\': \'egon\', \'age\': 18, \'sex\': \'male\'}, {\'name\': \'alex\', \'age\': 73, \'sex\': \'male\'}, {\'name\': \'egon\', \'age\': 20, \'sex\': \'female\'}]
4、需要掌握的操作
updata:增加值
s1={1,2,3}
s1.update({3,4,5})
pop删除
s1.pop()
5、总结
存多个值
无序
set可变
以上是关于python学习的第六天数据类型及内置方法part2的主要内容,如果未能解决你的问题,请参考以下文章