首页 > 代码库 > python数据类型

python数据类型

python的基本数据类型(标准类型):


数字类型、字符类型、元祖和不可变集合是不可变类型,只能是重新创建对象,是可哈希的。

列表、字典和可变集合是可变类型,可以重新赋值,是不可哈希的。

------------------------------------

数字类型:是标量,直接访问


1.整型:intshortintlong都是整型(长整型),bool类型也是int类型

2.浮点数:float,分数属于浮点数,floatdouble都是浮点数(双精度)

3.复数:complex,real+imagj ,实数和虚数部分都是float


python也支持八进制(0)和十六进制(0x).

布尔值类型属于int类型只有两个值TrueFalse


__builtins__模块中的内建模块int中的内建函数:

int.bit_length():一个int类型的二进制形式的最小位数。

int.from_bytes(bytes,byteorder, *, signed=False)

int.to_bytes(length,byteorder, *, signed=False)


__builtins__模块中的内建模块float中的内建函数:

float.as_integer_ratio():返回一个整数对,这两个数相除等于float

float.hex():浮点数转换成十六进制表示。

float.fromhex(string):将十六进制string转换成字符串。


------------------------------------

序列:sequence

成员有序排列,可以通过下标偏移量访问一个或多个成员。字符串、元祖、列表都是序列,序列下标从0开始。


序列类型操作符(字符串、元祖、列表都通用):

seq[ind]:获取下标为ind的元素,

seq[ind1:ind2]:获取下标从ind1开始到ind2的元素,不包括ind2这个元素,

seq[ind1:ind2:step]:获取下标为[ind1,ind2)的元素,步长为step

ind的取值范围[0,len(seq)-1][-len(seq),-1],ind2一定要大于ind1.

seq[::-1]:翻转一个序列。


seq*number:让seq重复number次。

seq1+seq2:将seq1seq2连接起来。


objinsequence:判断一个元素是否属于一个序列。

objnotinsequence:判断一个元素是否不属于一个序列。


------------------------------------

字符串str:是标量,顺序访问


字符串的值不能改变,只能是重新赋值,创建一个新的字符串。

字符就是长度为1的字符串,通过下标和切片访问。


删除字符串:

strname= “”

delstrname


‘string‘所有的空格和制表符都按照原样输出,需要转义。

string“和单引号一样。

‘’‘/”””strings’‘’/”””指定一个多行的字符串,需要转义。

R/r‘/“string’/”:自然字符串,表示‘‘或“”内部的所有内容原样输出。

U/u’/”string‘/”表示使用unicode编码。

用在‘‘/“”引用的字符串中间进行转义,如果是行末就是续行。

\n换行

\t制表符


字符编码:

ascii:早期的编码,StringType类型

unicode:新编码,UnicodeType类型

utfunicodes或者ucs的转换格式

python中的pickle模块只支持ascii,不支持unicode


内建变量__doc__

用来显示说明字符串。


__builtins__模块中的内建模块str中的内建函数:

strname.capitalize()把字符串中第一个字符大写

strname.center(width)返回长度为width的新字符串,原字符串剧中,多余部分用空格填充。

strname.count(pattern,beg=0,end=len(string))返回patternstrobjbegend范围内出现的次数。

strname.maketrans(x,y=None, z=None, /)

encode‘,‘endswith‘, ‘expandtabs‘, ‘find‘, ‘format‘, ‘format_map‘, ‘index‘,‘isalnum‘, ‘isalpha‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘,‘islower‘, ‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘,‘isupper‘, ‘join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, partition‘, ‘replace‘,‘rfind‘, ‘rindex‘, ‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘,‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘, ‘title‘,‘translate‘, ‘upper‘, ‘zfill‘


------------------------------------

元祖格式tuple:是容器,顺序访问


元祖是默认的组合类型,也就是可以省略小括号。

用()括起来,用逗号,隔开。

tuplename=(‘val1‘,‘val2‘,...)

空元祖:tuplename()

一个元素的元祖:tuplename‘val1‘)#需要一个,来区分字符串类型。


元祖是不可变得,不能对元祖元素重新赋值,只能重新赋值定义一个元祖。

dellistname #只能移除整个元祖


__builtins__模块中的内建模块tuple中的内建函数:

tuplename.count(value):获取value在元祖中出现的次数

tuplename.index(value[,start[, stop]]):返回指定范围内value的第一个索引。


------------------------------------

列表格式list:是容器,顺序访问


[]括起来,用逗号,隔开。

listname=[‘s1‘,‘s2‘,...]


listname[n]= value #列表可以通过索引直接更新列表中的某个元素。

dellistname[n] #根据索引移除元素

dellistname #移除整个列表

直接打印listname是按照列表格式原样输出,列表是可变的。


__builtins__模块中的内建模块list中的内建函数:

listname.count(obj):返回obj在列表中出现的次数

listname.index(value[,start [, stop]]):返回指定范围内value的第一个索引。

listname.append(‘item‘) #向列表追加元素

listname.remove(value) #移除列表中值为value的元素

listname.insert(index,obj):使得listname[index]=obj.

listname.reverse():将翻转后的结果重新赋值给列表

listname.sort():将排序后的结果重新赋值给列表

listname.extend(iterable):iterable追加到listname后面。

listname.pop([index]):移除并且返回listname[index],默认是最后一个元素。

listname.clear():移除列表中的所有元素

listname.copy():赋值列表


------------------------------------

字典格式dict:是容器,映射访问


也叫哈希表(hash)。

使用{}括起来,用逗号,隔开,由键和键值组成。

keyname={key1:value1,key2:value2,...}


key是不可变的,value是可变的,可以对value重新赋值。

一个key不能对应多个value,而且key必须是可哈希的。

字典通过key作为下标访问字典元素。


keyname[key]=value#增加键值对或对键值key重新赋值。

deldictname[key] #删除键为key的键值对

deldictname #删除整个字典


__builtins_模块中的内建模块dict中的的内建函数:

dictname.clear():清空字典中的所有键值对

dictname.copy():复制一个字典

dictname.fromkeysiterable[,value=http://www.mamicode.com/None]:以可迭代对象作为字典的键,value作为初始的键值,返回这个新字典。

dictname.items():返回由字典中键值对组成的元祖组成的列表

dictname.keys():返回由字典中键组成的列表

dictname.values():返回由字典中键值组成的列表

dictname.get(key[,d=None]):返回key键对应的键值,否则返回d

dictname.popkey,[,d]):返回key键对应的键值,并删除这个键值对,如果key不存在需要指定默认返回值

dictname.popitem():以元祖的形式返回一个键值对,并删除这个键值对

dictname.setdefault(key[,d]=Node)key存在就返回key的键值对,否则新增键值对key=d

dictname.update[E,] **F):


------------------------------------

集合:组合类型


1.可变集合set

2.不可变集合frozenset


set()/set(iterable):创建可变集合

frozenset()/frozenset(iterable):创建不可变集合


objinset/frozenset:判断一个元素是否属于一个集合。

objnotinset/frozenset:判断一个元素是否不属于一个集合。


delset/frozenset :删除集合


集合操作符:

==/ !=等价/不等价

<<=子集

>>=超集


集合运算:

a| b并集

a& b交集

a- b相对补集,得到只属于a,不属于b的元素的集合,也就是a减去ab的交集。

a^ b对称差分,得到只属于a和只属于b的元素的集合,也就是ab的交集的补集。

可变集合和不可变集合混合运算,结果和左边的集合类型相同。


__builtins__模块中的内建模块set和内建模块frozenset的共同部分:

a.copy():赋值集合a

a.isdisjoint(b):如果ab交集为空返回True

a.issubsetb):如果ab的子集返回True

a.issuperset(b):如果ab的超集返回True

a.union(b):并集,返回ab的并集。

a.intersectionb):交集,返回ab的交集。

a.difference(b):相对补集,返回只属于a不属于b的元素。

a.symmetric_differenceb):对称差分,返回是ab的元素,但不是ab交集中的元素的集合。


__builtins__模块中的内建模块set中的内建函数:只适用于可变集合:

set.update(b):setb的并集赋给set

set.intersection_update(b):将setb的交集赋给set

set.difference_update(b):将setb的相对补集赋set

set.symmetric_difference_updateb):将setb的对称差分赋给set

set.add(obj):将obj追加到集合set中。

set.remove(obj):将obj从集合set中删除,如果不存在引发KeyError错误。

set.discard(obj):将obj从集合set中删除,如果不存在忽略。

set.clear():清空集合

set.pop():从集合set中弹出任意一个元素,返回这个值并从集合中它。


python数据类型