1. 画出代码a = [100,200,300]的内存存储示意图。
2. 使用range 生成序列:30,40,50,60,70,80
解:
>>> list(range(30,81,10))
[30, 40, 50, 60, 70, 80]
>>>
3. 推导式生成列表: a = [x*2 for x in range(100) if x%9==0],手写出结果。
解答:
>>> a=[x*2 for x in range(100) if x%9==0]
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
>>>
4. 使用二维列表存储表格信息,并画出简单的内存存储示意图:
姓名年龄薪资城市
高小一18 30000 北京
高小二19 20000 上海
高小五20 10000 深圳
解: y=[ ["高小一",18,30000,"北京"], ["高小二",19,20000,"上海"], ["高小五",20,10000,"深圳"] ] for m in range(3): for n in range(4): print(y[m][n],end="\t") print()
高小一 18 30000 北京
高小二 19 20000 上海
高小五 20 10000 深圳
Process finished with exit code 0
5. 元组和列表有哪些共同点?有哪些不同点?
解:
1.共同点:
都是序列
都可以存储任何数据类型
可以通过索引访问
2.差异:
使用方括号[]创建列表,而使用括号()创建元组
列表是可变的,而元组是不可变的,我们可以修改列表的值,但是不修改元组的值。所以不能将列表用作字典中的key。 但可以使用元组作为字典key。
元组无法复制。 原因是元组是不可变的。 如果运行tuple(tuple_name)将返回自己。
Python将低开销的较大的块分配给元组,因为它们是不可变的。 对于列表则分配小内存块。 与列表相比,元组的内存更小。 当你拥有大量元素时,元组比列表快。列表的长度是可变的。
习惯上元组多用于用于存储异构元素,异构元素即不同数据类型的元素,比如(ip,port)。 另一方面,列表用于存储异构元素,这些元素属于相同类型的元素,比如[int1,in2,in3]。
6. 创建一个字典对象,包含如下信息:
支出金额:300.15,支出日期:2018.10.18,支出人:高小七
解:
a={'支出金额':'300.15','支出日期':'2018.10.18','支出人':'高小七'}
7. 使用字典存储行数据,最后将整个表使用列表存储起来。
姓名年龄薪资城市
高小一18 30000 北京
高小二19 20000 上海
高小五20 10000 深圳
解:
8. 用文字和自己画的示意图描述:字典存储一个键值对的底层过程。
9. 集合和字典有什么关系?
解:
共同点:
①都是使用花括号{}将任意对象括起来的集合
②他们都是无序的数据集合
③都是一种可变的容器模型(可变的序列)。
不同点:
①存储对象不一样
字典是由”键-值”(key-value)对组成的集合,字典的”值”(key)通过”键”(value)来引用。键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一,且key可存储任意类型对象。
集合不支持下标索引,它是可变的数据类型,集合中的元素是唯一的,且不可以存列表和字典,一般用于元组或者列表中的元素去重。
②打印输出顺序不一样
使用print输出字典的时候,通常输出的顺序和定义的顺序是不一致的;输出集合顺序和定义的一致。
③集合底层是字典实现,集合的所有元素都是字典中的“键对象”。