分类:
1、数值型:int、float、complex、bool
2、序列对象:str、list、tuple
3、键值对:set、dict
一、数值型
int(x)返回一个整数
float(x)返回一个整数,双精度型
complex(x)、complex(x,y)返回一个复数
bool(x)返回布尔值,可以和整数直接运算,(True+1)=>2
数字的处理:round(),四舍六入五取偶
math模块:floor()向小数取整、ceil()向大数取整、pow(x,y)=x的y次方、sqrt()开方
进制转换:bin(10)十进制转换成二进制0b1010
oct(10)十进制转换成八进制0o12,
hex(10)十进制转换成十六进制0xa,
int(‘number’,x)将x进制的number转换成十进制
二、列表
列表为线性数据结构,有序,元素可以是数字、字符串、对象、列表等,列表是可变的,可以通过索引进行访问
1、列表查询
list.index(value,[start[,stop]])返回value值的索引位置,匹配不到抛出ValueError
list.count(value)返回列表中匹配value值的次数
count和index时间复杂度都是O(n)
len(list)返回列表中元素的个数
list[index]=value列表元素修改,索引不可超界
list.append()尾部追加,就地修改,没有新列表产生
listinsert(index,object)在指定的index处插入新的元素object,就地修改,时间复杂度O(n),index超越上界,尾部追加,超越下界,头部追加
list.extend(interable) 将可迭代元素追加进来,就地修改
+ >将两个列表连接起来,产生新列表,原列表不变,本质上调用的是__add__()方法
* >将列表元素重复n次,返回新的列表list=[[1,2],3]*2=>[[1,2],3[1,2],3] list[0][0]=5 =>[[5,2],3,[5,2],3]
list.remove(value),移除第一个value的值,就地修改
list.pop([index])不指定索引从尾部弹出,指定索引,弹出索引出的值
list.clear(),清空所有元素,剩下一个空列表
list.reverse(),列表元素反转,返回None,就地修改
list.sort(key=func,reverse=False)对元素进行排序,reverse为True=降序,False=升序,key为一个函数,指定key如何排序
拷贝:list1=list2相当于赋值,两个列表完全相等,对任何一个改变都会影响另一个,其实操作的是同一个,只是有两个变量名,list1 is list2 =>True
浅拷贝 import copy。 list1=list.copy(),或者list1=copy.copy(list2)这两个一样,两个列表的id地址不同,值相同,改变其中任一个列表的第一层都不会影响到第二个列表,改变从第二层开始就会影响另一个列表,也就是说从第二层开始指向的是同一个id地址,list1 is list2 =>False
对于列表,list1=list[:],就是浅拷贝
深拷贝 import copy 。list1=list2.copy.deepcopy(),深拷贝之后,两个列表只是值相同,对一个列表的任何改变都不会影响另一个列表
以上适用于可变类型,对于不可变类型的对象元组,对于深浅拷贝毫无影响,最终的地址值和值都是相等的。
random模块
import random
random.randint(a,b)返回[a,b]之间的整数
random.choice(seq)从非空序列的元素中随机挑选一个元素,如random.choice(range(10)),random.choice([1,2,3,5,7])
random.randrange(start,stop=None,step=1)从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1,
random.shuffle(list) 返回值为None,就地打乱列表元素
random.sample(population,k)从样本空间或总体(序列或者集合类型)中随机取出k个不同的元素,返回一个新的列表 如random.sample(['a','b','c'],2)。random.sample([1,1],2)=>[1,1]
三、元组
一个有序的元素组成的集合,使用小括号()表示,元组是不可变对象
一个元素时用(1,),元素后边要有逗号
元组查询方法有index、count、len用法与列表相同
元组是只读的,所以没有增,改,删的方法
命名元组:
from collections import namedtuple
namedtuple(typename,field_names,verbose=False,rename=False)
- typename: 元组名称
- field_names : 元组中元素的名称 - rename: 如果元素名称中包含python关键字, 必须设置rename=True