Python手册--Python数据类型

说明:本手册所列包来自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’] 删除并返回对应value
ret = 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))

猜你喜欢

转载自blog.csdn.net/qq_41518277/article/details/80256765