第一季第一章第六节主要讲述了字符编码的问题,Python2中还有这个问题,但3中几乎不涉及这个问题了,所以这里不多做笔记,仔细看一看,对以前ASCII,Unicode等编码有不错的理解,挺好的。
额外记录一点:如果对文件操作,打开文件的时候,最好用codecs.open替代open
1 | import codecs |
第七节:列表
- 列表list同int,float,str一样,也是python的一种对象类型。
- list用[]表示,这同其他语言的数组类似,但是数组中的元素必须是同一种类型,因为数组需要提前声明,说明数组类型,但列表不用,所以里面的元素可以是不同类型。
- 列表和字符串两种类型都属于序列(都是一些对象按照某个次序排列起来,这是序列的最大特征)
- “反转”函数,示例:
1 | >>> lst=[1,2,3,4,5] |
关于迭代,看完一次有些不懂,建议再看,其实就目前而言,还无法理解迭代和extend函数之间的关系,我对于迭代有待以后更加深入,除了文章中给出的使用函数查看,还可以用“for 元素 in 对象: printf 元素”来检验,如果可以打印出来,那么对象就是可迭代的,不过文章中示例可以看出str类型的对象是不可迭代的,不过通过实验发现是可以迭代的,不知道是文章的错误还是python 2 和3之间的区别。
1.7和1.8 主要讲了列表的一些操作函数,例如反转、插入、删除等以及对于这么函数,列表和字符串的相同和不同,说实话,函数太多具体用法记不住,只能先过一遍,知道有这么个函数,可以实现什么功能,到具体用的时候再来仔细查看。
第九节:元组1.9介绍了一个新的概念:元组。元组是用圆括号括起来的,元素之间用逗号隔开。
对比 | 字符串 | 列表 | 元组 |
---|---|---|---|
是否是序列 | 是 | 是 | 是 |
元素是否可改 | 否 | 是 | 否 |
元素类型 | 非任意 | 任意 | 任意 |
特别提醒,如果一个元组中只有一个元素,应该在该元素后面加一个半角的英文逗号。
1 | >>> a=1 |
第十节:字典
- 1.10介绍了新概念,字典(dict)。在一个字典中,键是唯一的,不能重复,必须是不可变对象。值则对应于键,且值可以重复。建立字典有三种方法,具体见p123。其中最后一种为使用{}.fromkeys
1 | >>> person={}.fromkeys(("one","two"),"hpf") |
这里不同的键对应同一个值,如何不同的键对应不同的值呢?
1 | >>> person={}.fromkeys(("one","two"),("hpf","lqh")) |
呃,也不是
查了一下,貌似是不可以的
类似键值对这种映射方式的数据存储方式十分高效,例如使用列表,python需要从头开始读,直到找到制定的索引值;但是使用字典便不需要,直接通过“键”来找到值,数据规模越大,这种优势越明显,因此也广泛应用于数据库中。
- Python中的copy为浅拷贝,如何理解浅拷贝。简单讲python只存储基本数据对象,如int、str等,这些对象在复制时,会新建一个内存地址,但是对于其他数据类型,在复制时并不会新辟地址。如果在复制时想全部新建地址,就需要“深复制”,需要导入一个模块,import copy,使用copy.deepcopy进行复制。
- 对于一个字典
1 | >>> a={"name":"hpf"} |
clear为清空,del为删除。
第十一节 集合
哇,感觉开学之后每天很紧张,好几天没有看老齐了,心中有愧呐,数据库课前看一波
- 集合(set),特点:有的可变,有的不可变;元素无顺序,不可重复
- 可通过set()创建,或者通过{}直接创建(不提倡,有时会和字典搞混)
- set()创建的是可变的集合,用frozenset()创建的是不可变的集合,也就是可哈希的
- 其他的交并补等运算自己看
以上。
注:转载文章请注明出处,谢谢~