一、数据结构和序列
1、 元组:不能修改,()来初始化
- 使用tuple函数将任意序列或迭代器转换为元组
tup = tuple("String")
tup
Output:(‘S’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’)
- 如果元组中有一个对象是可变,例如列表,可以在它内部进行修改
tup = tuple(['foo',[1,2,3],'zyy'])
tup[1].append(3)
tup
Output:(‘foo’, [1, 2, 3, 3], ‘zyy’)
- 可以用+来连接元组,或者用惩罚来拷贝数组
('foo',[1,2,3],'zyy')+(2,5)+('hhhh',)
Output:('foo', [1, 2, 3], 'zyy', 2, 5, 'hhhh')
('foo',[1,2,3],'zyy')*2
Output:(‘foo’, [1, 2, 3], ‘zyy’, ‘foo’, [1, 2, 3], ‘zyy’)
- 元组拆包
tup = (1,2,3)
a,b,c = tup
b
Output:2
- 交换
a,b = 1,2
a,b = b,a
a
Output:2
- rest有时候是你想要丢弃的数据
values = 1,2,3,4
a,b,*rest = values
a,rest
Output:(1, [3, 4])
2、列表:可以修改,[]来初始化
- insert和append的区别在于insert可以插入想要的位置,append只能插入在尾部
- remove和pop的区别在于remove仅仅删除,pop删除后会返回删除的值
- 用in关键字检查某个元素是否在一个列表中
list = ['foo', [1, 2, 3], 'zyy', 'foo', [1, 2, 3], 'zyy']
'zyy' in list
Output:True
- 与元组相同,可以用+来连接数组
- 可以用extend方法同时添加多个元素
list = ['foo', [1, 2, 3], 'zyy', 'foo', [1, 2, 3], 'zyy']
list.extend([2,3,5])
list
Output:[‘foo’, [1, 2, 3], ‘zyy’, ‘foo’, [1, 2, 3], ‘zyy’, 2, 3, 5]
- 可以用sort方法进行排序,也可以用key——一个用于生成排序值的函数
list = ['foo', 'zyyilyd', 'foooof']
list.sort(key=len)
list
Output:[‘foo’, ‘foooof’, ‘zyyilyd’]
- 切片:start位置的索引是包含的,但是end位置的索引是不包含的,负索引是从尾部开始进行切。第二个冒号后面的数值是表示每隔多少个数取一个值
list1 = [1,2,4,5,63,3]
list2 = [2,4,63,2,3,6,4]
list1[-3:],list2[::2]
Output:[([5, 63, 3], [2, 63, 3, 4])
(当想要对列表进行翻转的时候,就可以使用list[::-1]
3、内建序列函数
- enumerate:构造一个字典,可以将序列值映射到索引上
list = ['zyy','zyj','xht','hyj','gjy','cjn']
map = {}
for i,v in enumerate(list):
map[v]=i
map
Output:{‘zyy’: 0, ‘zyj’: 1, ‘xht’: 2, ‘hyj’: 3, ‘gjy’: 4, ‘cjn’: 5}
- sorted:返回一个已排序的列表
list = ['zyy','zyj','xht','hyj','gjy','cjn']
sorted(list)
Output:[‘cjn’, ‘gjy’, ‘hyj’, ‘xht’, ‘zyj’, ‘zyy’]
- zip:可以处理任意长度的序列,他生成列表长度由最短的序列决定
- reversed:将序列的元素倒序排列
4、字典:键值,{}来创建
5、集合:无序且元素唯一的容器,可以用set()或者{}来初始化
二、函数
1、命名空间、作用域和本地函数
- global关键字为全局变量
2、返回多个值
def f():
a = 5
b = 6
c = 7
return a,b,c
a,b,c = f()
a,b,c
Output:(5, 6, 7)
3、函数是对象
4、匿名函数(Lambda):通过单个语句生成函数的方式
5、生成器:通过一致的方法遍历序列
6、错误和异常处理
- 可以将多个异常类型写成元组的方式同时捕获多个异常
- finally关键字是代表不管捕获了什么异常,最后都会执行finally的代码
1、python的文件模式
2、python的文件方法
参考教材:《利用Python进行数据分析》Wes Mckinney著