2020-11-11字典,集合,条件表达式,while循环

1411-李同学

发表文章数:148

热门标签

首页 » Python » 正文

一、字典

1、概念:字典是键值对的无序的可变序列

键:整数,浮点数,字符串,元组

2、字典的创建:

a={“name”:“lilei”,“age”:18}

b=dict(name=“lilei”,age=18)

a=dict([(“name”,“lilei”),(“age”,18)])

c={}

d=dict()

通过zip方式

k=[“name”,“age”]

v=[“lilei”,18]

d=dict(zip(k,v))

3、字典元素的访问

1)通过键获得值,若键不存在,抛出异常

a[“name”]

  1. 通过get获得值,优点是若键不存在,返回none

3)列出所有的键值对

print(a)

  1. 列出所有的键

a.keys()

a.values()

  1. len 返回键值对的个数

len(a)

  1. 检测一个键是否在字典中

“name”in a

true or false

4、字典元素的添加

a={}

a[“address”]=“lilei” 添加时若key存在覆盖,不存在添加。

5、update()将所有键值对全部添加到旧字典上

a={“name”:“lilei”,“age”:18}

b={“gender”:“man”}

a.update(b)

a={“name”:“lilei”,“age”:18,“gender”:“man”}

6、del(a[“name”])

clear 删除所有的键值对,

a.pop(“age”): 删除的同时提取值

popitem随机删除

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

a={“name”:“高小一”, “age”":18, “薪资”:30000,“城市”:“北京”}

b={“name”:“高小二”, “age”":19, “薪资”:20000,“城市”:“上海”}

c={“name”:“高小三”, “age”":20, “薪资”:10000,“城市”:“深圳”}

t=[a,b,c]

print(t[1].get(“age”)): 获取第二个的age项的值,

需求:遍历所有的薪资

for i in range(len(t)):

  print(t[i].get("salary")

需求:打印表的所有数据

for i in range(len(t)):

   print(t[i].get("name"),t[i].get("age"),t[i].get("薪资"),t[i].get("城市"))

8、核心底层原理:

字典对象的核心是散列表。散列表是一个稀疏数组,数组的每个单元叫做bucket,每个bucket由两部分,一个是键对象的引用,一个是值对象的引用。可以通过偏移量来读取指定bucket。

bin(hash(“name”)) 得到散列值。找到为空的bucket里。

9、核心底层原理:查找键值对的底层过程

a.get(“name”)

“lixuan”

取散列值时三位三位的取

,如果为空,返回None。如果不为空,则将这个bucket的键对象计算对应的散列值,和我们的散列值进行比较,如果相等,则将对应的值对象返回。如果不相等,再依次取其它几位数字,重新计算偏移量。

总结:

1)键必须可散列:数字字符串元组都是可散列的

2)字典在内存中开销巨大,典型的空间换时间

3)键查询速度很快

4)往字典里面添加新建可能导致扩容,导致散列表中键的次序变化。因此,不要在遍历字典的同时修改字典。

二、集合

1、概念:集合是无序可变的,元素不能重复,集合底层是字典是先。集合的所有元素都是字典中的键对象。

2、集合的创建

  1. a={3,5,7}

a.add(9)

a={3,5,7,9}

  1. 使用set()

  2. remove()删除指定元素;clear()清空整个集合

3、集合相关操作

a|b 并集 a.union(b)

a&b 交集 a.intersection(b)

a-b 差集 a.difference(b)

四、选择结构

1、单分支结构:条件表达式:语句块1

格式: if 条件表达式:

                  语句

false的情况:0,None,False,各种空序列对象

条件表达式中,不能有=号,用==代替

2、双分支结构:条件表达式 true:执行语句块1

false:执行语句块2

if-else语句

三元条件运算符:print(“s is larger than 10” if int(s)>10 else “s is smaller than 10”)

3、多分支结构选择

if-elif语句

可以判断很多种情况,只要有一组条件语句为真,则跳出整个if-elif 语句

4、选择结构的嵌套

if语句里面继续套用if语句

score=int(input(""))

degree=“ABCDE”

num=0

if score>100 or score<0

     print("overlimited")

else:

   num=score//10

   if num<6:

         num=5

  print(degree[9-num])

5、while循环语句

死循环:while True:

1) 打印1-10

while num<=10:

   print(num)

   num+=1

2) 计算1到100的和

num=1

i=0

while num<=100:

    i+=num

    num+=1

print(i)

标签:

未经允许不得转载:作者:1411-李同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《2020-11-11字典,集合,条件表达式,while循环》 发布于2020-11-11

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录