说明:本手册所列包来自Awesome-Python ,结合GitHub 和官方文档,参考 SeanCheney 大神在简书上翻译的《利用Python进行数据分析·第2版》,整理所得。
目录
tuple
元组是一个固定长度,不可改变的Python序列对象
创建tuple
tup = (4, 5,6), (7, 8)
tup = tuple(obj)
拆分元祖
tup = 4,5,(6,7)
a,b,(c,d) = tup
#特殊拆分
values = 1,2,3,4,5
a,b,*_ = values
#*_代表剩余部分,'_'名字不重要,作为惯用写法用'_'
索引和切片
tup[index]
tup[start:stop:step]
方法
tup.count(value)
计数
list
- 创建list
list = [2, 3,7, None]
list=list(obj)
In: list('abcd')
Out: ['a','b','c','d']
索引和切片
list[index]
list[start:stop:step]
list[::-1]
倒叙切片方法
方法 | 说明 |
---|---|
list.append(obj) | 追加元素 |
list.extend(obj1,obj2,…) | 追加多个元素 |
list.insert(index,obj) | 指定位置插入元素 |
list.pop(index) | 删除并返回指定位置元素 |
list.clear() | 清空列表 |
list.remove(obj) | 寻找第一个值并除去 |
list.copy() | 副本 |
list.reverse() | 反转列表 |
list.sort(reverse=False) | 将list中的元素升序排列 |
序列函数
enumerate
函数,可以返回(i, value)
元组序列:
for i, value in enumerate(collection):
#do something with value
sorted函数
sorted(list)
返回排序好的list副本
sorted(str)
拆分str,返回排序好的list副本zip函数
zip(seq1,seq2)
可以将多个列表、元组或其它序列成对组合成一个元组对(seq[0],seq[0]), (seq[1],seq[1]),…
zip可以处理任意多的序列,元素的个数取决于最短的序列
In [89]: seq1 = ['foo', 'bar', 'baz']
In [90]: seq2 = ['one', 'two', 'three']
In [92]: list(zip(seq1, seq2))
Out[92]: [('foo', 'one'), ('bar', 'two'), ('baz', 'three')]
In [95]: for i, (a, b) in enumerate(zip(seq1, seq2)):
....: print('{0}: {1}, {2}'.format(i, a, b))
....:
0: foo, one
1: bar, two
2: baz, three
dict
字典的值可以是任意Python对象,而键通常是不可变的标量类型(整数、浮点型、字符串)或元组(元组中的对象必须是不可变的)。这被称为“可哈希性”。
- 创建dict(哈希映射或关联数组)
dict={'key1':value1,'key2':value2}
由key-value对创建
dict(obj)
dict(zip(key_list,value_list))
zip函数创建
dict['key']
访问dict元素
dict['new_key']='new_value'
添加新key-value对
'key' in dict
是否包含键值’key’
del dict['key']
删除元素
del dict
删除字典
方法 | 说明 |
---|---|
dict.pop[‘key’] | 删除并返回对应valueret = dict.pop('a') |
dict.clear() | 删除所有元素 |
dict.update(dict2) | 将dict2中元素融入dict |
list(dict.keys()) | 返回keys列表 |
list(dict.values()) | 返回values列表 |
dict.items() | 返回dic中所有的(key,val)元祖数组 |
dict.get(key,default_value) | 如果key存在,返回value,否则default_value |
set
集合是无序的不可重复的元素的集合。{1,2,3} == {3,2,1} #返回TRUE
- 创建set
a={1, 2, 3, 4, 5}
b=set(obj)
方法 | 替代语法 | 说明 |
---|---|---|
a.add(value) | 将value添加到a | |
a.remove(value) | 寻找第一个值并除去 | |
a.pop(index) | 删除并返回指定位置元素 | |
a.clear() | 清空a | |
a.update(b) | a\=b |
将b中元素融入a |
a.union(b) | a\b |
a和b的不重复元素 |
a.intersection(b) | a&b |
交集 |
a.difference(b) | a-b |
差集(存在于a,不存在于b) |
a.issubset(b) | if a∈b return True | |
a.issuperset(b) | if b∈a return True | |
a.isdisjoint(b) | a和b无交集,返回True |
列表、集合和字典推导式
list_comp=[expr for val in collection if condition]
dict_comp = {key-expr :value-expr for value in collection if condition}
set_comp = {expr for value incollection if condition}
#推导式等价for循环
for val in collection:
if condition:
result.append(expr)
iterator(迭代器) and generator(生成器)
iterator = iter(obj)
range(start=0,end,step=1)
返回一个迭代器,它产生一个均匀分布的整数序列 [start,end) by step
next(iterator)
迭代函数,下一个
# 自建迭代器
def squares(n=10):
print('Generating squares from1 to {0}'.format(n ** 2))
for i in range(1, n + 1):
yield i ** 2 #将return替换为yield即可返回迭代器
gen = squares()
for x in gen:
print(x, end=' ')
内建函数
帮助 | |
---|---|
? |
显示对象的信息 |
?? |
显示函数的源码 |
np.*load*? |
字符与通配符结合可以匹配所有的名字 |
help() | 显示对象的帮助信息 |
输入输出 | |
f=open(filename,mode) | 打开文件 |
f.close() | 关闭文件 |
input(prompt) | 输入 |
print(value,sep=”,end=’\n’) | 输出 |
数学函数 | |
round(x,n) | 四舍五入 |
abs(x) | |
len(obj) | 序列元素数 |
max(obj) | |
min(obj) | |
函数 | |
type(obj) | 输出对象类型 |
chr() | 把编码转换为对应的字符 |
isinstance(obj,class_or_tuple) | 判断对象类型(‘int’, ‘str’,’ list’…) |
reversed(seq) | 反转序列,返回迭代器 |
map(function,obj) | 函数映射strings = ['a','as','bat','car','dove','python'] set(map(len, strings)) |