time :5-12
字典的基本操作
(1),通过键找到字典的元素方法,若未找到相关数据,.get() 会返回 None。
lis={'zhangsan':100,'lisi':200} print(lis['zhangsan'])#方法一 print(lis.get('zhangsan'))#方法二
输出结果:100
(2),键的判断
lis={'zhangsan':100,'lisi':200} print('zhangsan' in lis)
输出结果:True
(3),字典元素的删除,清除
lis={'zhangsan':100,'lisi':200}
del lis['zhangsan']
print(lis)
lis.clear()
print(lis)
输出结果:{'lisi': 200}
{}
(4),字典元素的新增,修改
lis={'zhangsan':100,'lisi':200} lis['xxx']=80 print(lis)
输出结果:{'zhangsan': 100, 'lisi': 200, 'xxx': 80}
(5),获取字典视图
1,获取所有字典键值
lis={'zhangsan':100,'lisi':200} print(lis.keys())
输出结果:dict_keys(['zhangsan', 'lisi'])
2,获取字典元素
lis={'zhangsan':100,'lisi':200} print(lis.vaules())
输出结果:dict_values([100, 200])
3,获取所有的键值对
lis={'zhangsan':100,'lisi':200} print(lis.items())
输出结果:dict_items([('zhangsan', 100), ('lisi', 200)])
(6),字典元素的遍历
lis={'zhangsan':100,'lisi':200,'xxx':89} for a in lis : print(a,lis.get(a))
输出结果:zhangsan 100 lisi 200 xxx 89
字典的特点
1,字典中的所有元素都是一个键值对,键值key不可重复(会覆盖原来的值),value可以重复
2,字典的元素是无序的,无法定向插入元素
3,字典中的key必须是不可变对象
4,字典可以动态伸缩
time :5-13
字典生成式
即生成字典的第三种方式,假设有两个列表,我们可以通过内置函数 zip() 进行打包操作,合成一个字典。(注:若上下元素个数不同时,取到元素个数最小的列表合并成字典)
lis1=['asd','qwe','zxc']
lis2=[20,30,40]
x = { i:j for i,j in zip(lis1,lis2) }#i,j均为变量
print(x)
lis1=['asd','qwe','zxc']
lis3=[20,30]
y = { i:j for i,j in zip(lis1,lis3) }
输出结果:{'asd': 20, 'qwe': 30, 'zxc': 40}
{'asd': 20, 'qwe': 30}
元组
(1),概念
类似于列表,但是不同点是列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列,而元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。元组也可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容。
(2),元组的创建与输出
若元组中只有一个元素时,要加 , 在括号内,否则判定为 str 类型。
若输出指定元素时,与列表相同,写出相应元素下标即可
lis=('hellow','python',666)
print(lis)
x = tuple(('hellow','python',666))
print(x)
lis3=(50,)
print(type(lis3))
print(lis[2])
输出结果:('hellow', 'python', 666)
('hellow', 'python', 666)
<class 'tuple'>
666
(3),元组的遍历
lis=('hellow','python',666) for i in lis: print(i,'',end='')
输出结果:hellow python 666
time :5-14
集合
可变类型序列,类似于没有value的字典。
集合的创建
和字典相同,里面的键即元素不允许重复。可以将其他类型转化为集合类型。
lis={2,3,3,4,5,6,7}
print(lis)
lis2=set(range(6))
print(s)
lis3=set([1,2,3,4,5])
print(lis3)
lis4=set((1,2,3,4,5))
print(lis4)
lis5=set('python')#注意是无序的
print(lis5)
输出结果:{2, 3, 4, 5, 6, 7}
{0, 1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
{'t', 'h', 'o', 'y', 'n', 'p'}
集合的相关操作
(1),新增元素 .add() 添加一个元素,.update() 添加多个元素。
lis={12,34,45,57}
lis.add(60)
print(lis)
lis.update({20,30})
print(lis)
#lis.update(列表/元组)均可
输出结果:{34, 12, 45, 20, 57}
{34, 12, 45, 20, 57, 30}
(2),删除元素 .remove() 删除一个元素; .discard() 删除一个元素,若集合中没有此元素不会报错,随机删除一个元素; .pop() 里面无参数; .clear() 删除整个集合。
集合间的关系
(1),判断两个集合是否相等,只要里面的元素相同即集合相同。
lis={10,20,30} lis2={20,10,30} print(lis==lis2)
输出结果:True
其余关系了解即可:
集合的数学操作
lis={10,20,30,40}
lis2={20,30,40,50}
print(lis.intersection(lis2))
print(lis & lis2)#求交集操作
print(lis.union(lis2))
print(lis | lis2)#求并集操作
print(lis.difference(lis2))
print(lis-lis2)#求差集操作
输出结果:{40, 20, 30}
{40, 20, 30}
{40, 10, 50, 20, 30}
{40, 10, 50, 20, 30}
{10}
{10}