python数据类型

​ 每种编程语言都有属于自己的数据类型。今天,我们就来讲一下python的数据类型——列表,元祖,字典,字符串,堆,集合,队列。

列表

列表方法

同时还有一些比较常用的方法,类似cmp(比较大小,python3已经找不到。如要使用,可以利用operator模块),len(list)计算列表元素个数,max(list)求列表中的最大值,min(list)求最小值。下面对上面列表的排序方法(list.sort)进行讲解:

下张图片是对以上方法的coding:

元祖(tuple)

元祖不像列表可以改变。元祖是不可变的。但可以利用切片灵活使用。

字典(dict)

字典有多个键与其对应的值构成的键-值对组成。键-值对称为项。每个键和它的值之间用:(冒号)隔开,项之间用,(逗号)隔开。

len(d)返回d中项(键-值对)的数量

d[k]返回关联到键k的值

d[k]=v将值关联到键k上

del d[k] 删除键为k的项

k in d 检查d中是否有含有键为k的值

clear():清除字典中所有的项

fromkeys():使用给定的键建立新的字典,每个键都对应一个默认的值None,也可以设立默认值

get():访问字典项,访问一个不存在的键时,没有异常。且可以定义默认值为None。

items

items将所有的项以列表方式返回,列表中的每一项都表示为(键,值)对的形式。

keys

keys方法将字典中的键以列表形式返回

values

values方法以列表的形式返回字典中的值。与返回键的列表不同的是,返回值的列表中可以包含重复的元素。

pop:用来获得对应于给定键的值,然后将这个键-值对从字典中移除。

popitem:弹出随机的项

setdefault:获得与给定键相关联的值,能在字典中不含有给定键的情况下设立相应的键值。

update:可以利用一个字典项更新另外一个字典

注意:字典支持常见的集合操作

1
2
3
4
5
a={'x':1,'y':2,'z':3}
b={'w':10,'x':11,'y':2}
a.keys() & b.keys()#{'x','y'}
a.keys() - b.keys()#{'z'}
a.items() & b.items(){('y':2)}

堆(heapq)

使用该数据类型前,我们先导入一个新的模块heapq

heappush(heap,x):将x入堆

heapop(heap):将堆中最小的元素弹出

heapify(heap):将heap属性强制应用到任意一个列表

heapreplace(heap,x):将堆中最小的元素弹出,同时将x入堆

nlargest(n,iter):返回iter中前n大的元素

nsmallest(n,iter):返回iter中前n小的元素

集合(set)

集合可取交集、取并集、取差集、对称差集:

利用set做去重操作:

集合分为可变集合和不可变集合:

队列(Queue)

在python中,队列时线程间最常用的交换数据形式,Queue模块时提供队列操作的模块。

先进先出(FIFO):

先进后出(LIFO):

优先级队列:优先级队列put进去一个元祖,(优先级,数据),优先级数字越小,优先级越高。

注意:如果有两个元素优先级是一样的,那么在出队的时候是按照先进先出的顺序。

双端队列:

队列的方法:

使用put方法往队列中添加元素,需要考虑是否能放下的问题如果放不下了,默认会阻塞(block=True),阻塞时可以定义超时时间timeout。可以使用block=False设置阻塞时立即报错

使用get()从队列里取数据。如果为空的话,blocking= False 直接报 empty异常。如果blocking = True,就是等一会,timeout必须为 0或正数。None为一直等下去,0为不等,正数n为等待n秒还不能读取,报empty异常。

字符串(string)

用+拼接字符串:

将值转换为字符串的机制:

1、通过str函数,把值转换为合理形式的字符串,以便用户可以理解

2、通过repr函数创建一个字符串,以合法的python表达式的形式表示值

join和split:

字符串格式化方式:

capitalize()

把字符串的第一个字符改为大写

casefold()

把整个字符串的所有字符改为小写

center(width)

将字符串居中,并使用空格填充至长度 width 的新字符串

count(sub[, start[, end]])

返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。

encode(encoding=’utf-8’, errors=’strict’)

以 encoding 指定的编码格式对字符串进行编码。

startswith(prefix[, start[, end]])

检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。

endswith(sub[, start[, end]])检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。

startswith和endswith如果需要同时针对多个选项做检查,只需要给startswith和endswith提供包含可能选项的元祖。

expandtabs([tabsize=8])

把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。

find(sub[, start[, end]])检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

注:两个字符串的长度必须相同,为一一对应的关系。

translate(table)根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符

index(sub[, start[, end]])

跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

isdecimal()

如果字符串只包含十进制数字则返回 True,否则返回 False。

isdigit()

如果字符串只包含数字则返回 True,否则返回 False。

islower()

如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。

isnumeric()

如果字符串中只包含数字字符,则返回 True,否则返回 False。

isspace()

如果字符串中只包含空格,则返回 True,否则返回 False。

istitle()

如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。

isupper()

如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。

join(sub)

以字符串作为分隔符,插入到 sub 中所有的字符之间。

ljust(width)

返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。

rjust(width)

返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。

format也可以完成对齐的任务。“<”:左对齐 “>”:右对齐 “^”:居中对齐

lower()

转换字符串中所有大写字符为小写。

lstrip()

去掉字符串左边的所有空格无法去除中间的字符

rstrip()

删除字符串末尾的空格。无法去除中间的字符

partition(sub)

找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串’, ‘’, ‘’)

replace(old, new[, count])

把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。

rfind(sub[, start[, end]])

类似于 find() 方法,不过是从右边开始查找。返回值是下标

rindex(sub[, start[, end]])

类似于 index() 方法,不过是从右边开始。

rpartition(sub)

类似于 partition() 方法,不过是从右边开始查找。

split(sep=None, maxsplit=-1)

不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。

splitlines(([keepends]))

在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。。

strip([chars])

删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。

swapcase()

翻转字符串中的大小写。

title()

返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。

upper()

转换字符串中的所有小写字符为大写。

zfill(width)

返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。

----本文结束,感谢您的阅读。如有错,请指正。----
大哥大嫂过年好!支持我一下呗
0%