2020.12.19-2020.12.20 Python学习笔记

2020.12.19-2020.12.20 Python学习笔记

一、字典(成对存储,通过键操作值)

1、典型的字典定义方式
a={‘name’:‘gaoqi’,‘age’:18,‘job’:‘programmer’}
a.get(‘name’) 通过键找
数列[0]通过数字找
“键”是任意的不可变数据:比如:整数、浮点数、字符串、元组。但是:列表、字典、集合这些可变对象,不能作为键,并且键是不可重复的。
2、字典的创建
(1)通过{}
(2)dict()
(3)zip()
(4)formkeys()
3、字典的访问
(1)通过[键]获得值,若键不存在,则抛出异常
a[‘name’]
(2)通过get()方法或者值,推荐使用,优点是指定键不存在,返回None;也可以设定指定键不存在时默认返回对象
(3)列出所有键值对 items()
(4)列出所有的键,列出所有的值keys() values()
(5)len()键值对的个数
(6)检测一个键是否在字典中
例如’name’ in a’
4、字典元素的添加
方法一: a[‘address’]='西三旗一号院‘
a[‘age’]=16
如果键不存在,则生成新的,如果键已经存在,则覆盖旧的。
方法二:使用update()将新字典中所有键值全部添加到旧字典的对象上,如果KEY有重复,则直接覆盖。

二、序列解包(用于元组、列表、字典)方便的对多个对象赋值

例如:
s={‘name’:‘gaoqi’,‘age’:18,‘job’:teacher}
a,b,c=s 默认对键进行解包
e,d,f=s.values()对值进行解包
h,i,j=s’iterms()对键值对进行操作

三、表格数据使用字典和列表存储,并实现访问

记住讲义例题

四、字典核心底层原理

对象核心是散列表,稀疏数组。
(1)怎么放:
计算散列值
bin(hash(‘name’)
如果三分之二满了就会扩容
(2)怎么取:
a.get(‘name’)
计算’name’对象散列值
bin(hash(‘name’))
(3)方法总结
a、键必须可散列
数字、字符串、元组,都是可散列的。
自定义对象需要支持下面三点:
支持hash()函数
支持通过_eq_()方法检测相等性
若a==b为真,则hash(a)==hash(b)也为真
b、字典在内存中开销巨大,典型的空间交换时间
c、键查询速度很快
d、往字典里面添加新建可能导致扩容,导致散列表中键的次序变化,因此,不要在遍历字典的同时进行字典的修改

五、集合

1、不能重复且唯一,底层只有字典的键对象。
创建
a={3,5,7}
a.add(9)
a
{9,3,5,7}
a=[‘a’,‘b’,‘c’,‘b’]
b=set(a)
{‘b’,‘a’,‘c’}
删除指定元素remove()
清完整个集合clear()
2、结合相关操作(并集、交集、差集)
并集:a={1,3,‘sxt’}
b={‘he’,‘it’,‘sxt’}
a|b或a.union(b)
{1,3,‘sxt’,‘he’,‘it’}
交集:a&b或a.intersection(b)
{‘sxt’}
差集:a-b或a.difference(b)
{1,3}

六、控制语句

(1)选择结构,必须有缩进
条件表达式中不能出现赋值操作符“=”
单分支结构(if)
双分支结构(if else)
多分支结构(if elif else)
(2)三元条件运算符,一般用于双分支结构。
条件为真时的值 if(条件表达式) else 条件为假时的值
(3)嵌套
if 表达式1:
语句块1
if 表达式2:
语句块2
else:
语句块3
else:
if 表达式4:
语句块4
(4)循环结构(while和for)
循环体里的一句至少应该包含改变条件表达式的语句,以使循环趋于结束,否则,就会变成一个死循环。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值