python基础学习浅学set,三目运算和字典

集合和字典都是可变类型!!!
以前的列表是可变类型,字符串和元组都是不可变类型。
################散列类型就是集合和字典

1.集合:set 特点:集合中不可添加可变元素。(比如:列表)
set是一个无序的不重复的元素序列。
可以使用大括号{}或者set()函数创建集合。
例:a = {1,2,3,45,12324}
set(a)

注意:创建一个空集合的时候,不能用a = {},这样是空字典,应该用set()

有交集,并集,差集:::
交集:& 共有的部分
并集:| 所有的部分
差集:- 会减掉共有的部分,保持第一个原集合中的值

(1) {}
注意: (集合会自动去重)
a = {‘a’,‘bb’,‘yy’,‘a’,‘fg’}
print(a)
输出:{‘a’,‘bb’,‘yy’,‘fg’}

拓展:
快速判断元素是否在集合内。 用in。
print(‘bb’ in a)
如果为True则在,False则不再。

(2) set()
a = set(‘whuhan’)
b = set(‘zhangxinyi’)
print(a) 输出为: {‘a’,‘h’,‘n’,‘u’,‘w’} 无序去重复
目的:在做元素的去重操作时可用set()

集合的基本操作:
1.添加元素 add 注意:add必须一个一个加。
a = {‘a’,‘bb’,‘yy’,‘fg’}
a.add(‘zhangxinyi’)
print(a) 输出为: {‘zhangxinyi’,‘yy’,‘bb’,‘a’,‘fg’}

2.删除元素
(1)remove 指定删除
a = {‘a’,‘bb’,‘yy’,‘fg’}
a.remove(‘bb’) 输出为: {‘yy’,‘a’,‘fg’}
(2)pop 随机删除
a.pop() 随机删除集合中的一个值

3.改变 update
s = {1,2,3,4,5}
s.update(‘wuhan’) 输出为:{‘w’,‘1’,‘a’,‘2’,‘h’,‘3’,‘u’,‘5’,‘n’,‘4’}

4.查
(1)判断是否没有交集,如果没有交集则判断正确,否则错误 isdisjoint
s1 = {1,2,3}
s2 = {3,4,5}
s1.isdisjoint(s2) 输出为False
(2)判断集合s1是否是s2的子集,是就输出True,反之输出False
s1.issubset(s2) 输出为False
(3)判断s1是否是s2的父集 s1.issuperset(s2)
s1.issuperset(s2) 输出为False

拓展:.计算集合元素个数 len()
1.a = {‘a’,‘bb’,‘yy’,‘fg’}
b = set(a)
print(len(b)) 输出为:4

开发:获取值长度在一定范围:向a = [12,5,3,2,33],
例如:if len(a)<=2:

2.清空集合 clear()
a = {‘a’,‘bb’,‘yy’,‘fg’}
a.clear()
print(a) 输出为:set()

2.三目运算: (可以优化代码)
在计算机语言中,有一种叫做三目运算的表达式,也叫三元表达式。
基本表达式: 变量 = 值1 if 条件 else 值2
如果条件满足,则变量取值1;否则取值2。

举例:
例一:
a = 5
b = 10
c = a if a>b else b 即 如果a>b,c = a;否则,c = b。
例二:
a = 10
if a > 5:
print(True)
else:
print(False)
转化为三目运算表达式:
print(True if a > 5 else False) 即 如果a > 5,就打印True,否则打印False

3.字典:dict 一系列的键值对{key:value}
字典是python中唯一内建的映射类型。

空字典 a = {}

两种定义形式:
(1)a = [(1,“吴某”),(2,“结婚”),(3,“中国”)]
b = dict(a) 把不是字典的形式转换成字典。
#使用dict函数的作用,通过其他映射(比如其他字典)或者(键,值)对的序列建立字典。
print(b) 输出为: {1:‘吴某’,2,“结婚”,3:‘中国’}

重点:使用dict()函数,dict值必须一一对应。
使用dict()函数,必须每个元组里的成比例。才能将元组转成 key:value

(2)a = {‘name’:‘吴某’,‘age’:18}

key是唯一的,value可以重复。

字典里的方法:
1.字典里取值
变量名[key] #获取键对应的值

2.修改
变量名[key] = ‘str’ #把键对应的值改为str

3.添加
变量名[key] = ‘str’ 有这个key则修改,无则添加

重点################字典里的增删改查:
1.增加方法:
(1) copy 同浅复制一样
(2)dict.fromkeys(key,value) 作用:快速组合成一个新的字典。返回新字典、是第一个参数的拆分:新字典的值是第二个参数
例如:
di2 = {‘name’:‘干干’,‘age’:18,‘sex’:‘男’}
di3 = dict.fromkeys([‘name’,‘age’]) 输出为:{‘name’: None, ‘age’: None}
di4 = dict.fromkeys([‘name’,‘age’],10) 输出为:{‘name’: 10, ‘age’: 10}
(3) setdefault 有则查,无则增
例如:
di2 = {‘name’:‘干干’,‘age’:18,‘sex’:‘男’}
di2.setdefault(‘name’) 输出为:‘干干’
di2.setdefault(‘name2’) 输出为:{‘name’:‘干干’,‘age’:18,‘sex’:‘男’,‘name2’:None}

2.删除方法:
(1) clear 清空字典
例如:
字典名.clear()
(2) pop 弹出指定key的键值对
例如:
变量名.pop(key) #通过key删除键值对
(3) popitem 返回并删除字典中的最后一对键和值
例如:
字典名.popitem() #相当于栈出,不过每次出的是一个键值对

3.更改方法:
update 更新字典、将原字典和新字典整合,key重复新的覆盖老的
例如:
di = {}
di.update({‘name’:‘吴某’,‘age’:16}) 输出可发现di这个空字典里添加了这个字典

4.查询方法:
(1) get 获取指定key 对应的value,如果key不存在放回none
例如:
a = {‘干干’: 11, ‘age’: 11}
a.get(‘age’) 输出为:‘11’
(2)keys 取出所有的key
例如:
a = {‘干干’: 11, ‘age’: 11}
a.keys() 输出为:dict_keys([‘干干’, ‘age’])
(3)values 取出所有的值
例如:
a = {‘干干’: 11, ‘age’: 11}
a.values() 输出为:dict_values([11, 11])
(4) items 取出所有的键值对
例如:
a = {‘干干’: 11, ‘age’: 11}
a.items() 输出为:dict_items([(‘干干’, 11), (‘age’, 11)])

目的:可以用于开发 ———————数据库
例如一个简单的数据库:1 2 3 4 247
people = {1:{“name”:“吴某”,“age”:“18”,“phone”:“12345”}
2:{“name”:“中国”,“age”:“18”,“phone”:“11111”}
}

发布了14 篇原创文章 · 获赞 15 · 访问量 228

猜你喜欢

转载自blog.csdn.net/qq_44907926/article/details/104315431