Py学习Day3:小练习

练习一:画出代码 a = [100,200,300]的内存存储示意图

练习二:使用 range 生成序列:30,40,50,60,70,80

s=[x*10 for x in range(3,9)]

print(s)

结果:[30, 40, 50, 60, 70, 80]

练习三:推导式生成列表: a = [x*2 for x in range(100) if x%9==0],手写出结果

该代码表示在 [0 , 200) 中,找到能被2和能被9整除的数,即18的倍数

所以结果为:0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198

练习四:使用二维列表存储表格信息,并画出简单的内存存储示意图:

存储:

s=[["高小一",18,30000,"北京"], \
   ["高小二",19,20000,"上海"], \
   ["高小一",20,10000,"深圳"]]

示意图:

 

 

练习五:元组和列表有哪些共同点?有哪些不同点?

相同点:

( 1 )索引相同,从左到右都为0~~n-1。

( 2 )拼接相同,都可以用“+”拼接。

( 3 )计数相同,都使用len()函数统计元素个数、使用count()函数统计指定元素的出现次数。

( 4 )都属于有序序列。

( 5 )都可以使用del删除。

( 6 )都可以使用“*”来使本身重复。

( 7 )都可以强制转换。

( 8 )切片方法都一致。

不同点:元组不能修改;列表可以根据索引来修改元素值

练习六:创建一个字典对象

              包含如下信息: 支出金额:300.15,支出日期:2018.10.18,支出人:高小七

s={'cost':'300.15','date':'2018.10.18','customer':'高小七'}

练习七:使用字典存储行数据,将练习四中的表使用列表存储起来

r1={"name":"高小一","age":"18","salary":"30000","city":"北京"}
r2={"name":"高小二","age":"19","salary":"20000","city":"上海"}
r3={"name":"高小五","age":"12","salary":"10000","city":"深圳"}
s=[r1,r2,r3]

练习八:用文字和示意图描述:字典存储一个键值对的底层过程

假设存在s={"age"=18},要存储则需要对”age“进行hash()变换,得到结果0B1011011101000

假设底层存储块共有16个槽位,即需要0000四位进行遍历寻找,从右向左的第一个四位是(1000)

对应十进制为8,则放入第9槽位内存块。如第9槽位已有数据,则从右向左的第二个四位是(1110)

对应十进制为14,则放入第15槽位内存块。以此类推,直至找到空槽位。

练习九:集合和字典有什么关系?

集合由字典构成,集合的元素是字典的键,具有无序性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值