本节继续讨论1.4中的数据类型操作
整理了一些函数表格分享一下
1.8.1 Number数字
1.8.2 String字符串
1.8.3 List列表
1.8.4 Tuple元组
1.8.5 Sets集合
1.8.6 Dictionary字典
1.8.1 Number数字
数学函数
函数 |
返回值 ( 描述 ) |
abs(x) |
返回数字的绝对值,如abs(-10) 返回 10 |
ceil(x) |
返回数字的上入整数,如math.ceil(4.1) 返回 5 |
cmp(x, y) |
如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃 。使用 使用 (x>y)-(x |
exp(x) |
返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045 |
fabs(x) |
返回数字的绝对值,如math.fabs(-10) 返回10.0 |
floor(x) |
返回数字的下舍整数,如math.floor(4.9)返回 4 |
log(x) |
如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) |
返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,…) |
返回给定参数的最大值,参数可以为序列。 |
min(x1, x2,…) |
返回给定参数的最小值,参数可以为序列。 |
modf(x) |
返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
pow(x, y) |
x**y 运算后的值。 |
round(x [,n]) |
返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 |
sqrt(x) |
返回数字x的平方根。 |
随机数函数
函数 |
描述 |
choice(seq) |
从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) |
从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1 |
random() |
随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) |
改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) |
将序列的所有元素随机排序 |
uniform(x, y) |
随机生成下一个实数,它在[x,y]范围内。 |
三角函数
函数 |
描述 |
acos(x) |
返回x的反余弦弧度值。 |
asin(x) |
返回x的反正弦弧度值。 |
atan(x) |
返回x的反正切弧度值。 |
atan2(y, x) |
返回给定的 X 及 Y 坐标值的反正切值。 |
cos(x) |
返回x的弧度的余弦值。 |
hypot(x, y) |
返回欧几里德范数 sqrt(xx + yy)。 |
sin(x) |
返回的x弧度的正弦值。 |
tan(x) |
返回x弧度的正切值。 |
degrees(x) |
将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) |
将角度转换为弧度 |
数学常量
常量 |
描述 |
pi |
数学常量 pi(圆周率,一般以π来表示) |
e |
数学常量 e,e即自然常数(自常数) |
1.8.2 String字符串
转义字符
转义字符 |
描述 |
(在行尾时) |
续行符 |
\ |
反斜杠符号 |
’ |
单引号 |
" |
双引号 |
\a |
响铃 |
\b |
退格(Backspace) |
\e |
转义 |
\000 |
空 |
\n |
换行 |
\v |
纵向制表符 |
\t |
横向制表符 |
\r |
回车 |
\f |
换页 |
\oyy |
八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy |
十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other |
其它的字符以普通格式输出 |
字符串运算符
下表实例变量a值为字符串 “Hello”,b变量值为 “Python”:
操作符 |
描述 |
实例 |
+ |
字符串连接 |
a + b 输出结果: HelloPython |
* |
重复输出字符串 |
a*2 输出结果:HelloHello |
[] |
通过索引获取字符串中字符 |
a[1] 输出结果 e |
[ : ] |
截取字符串中的一部分 |
a[1:4] |
in |
成员运算符 |
如果字符串中包含给定的字符返回 True H in a 输出结果 1 |
not in |
成员运算符 |
如果字符串中不包含给定的字符返回 True M not in a 输出结果 1 |
r/R |
原始字符串 |
原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 print r’\n’ prints \n 和 print R’\n’ prints \n |
% |
格式字符串 |
下面有讲解 |
字符串格式化
符号 |
描述 |
%c |
格式化字符及其ASCII码 |
%s |
格式化字符串 |
%d |
格式化整数 |
%u |
格式化无符号整型 |
%o |
格式化无符号八进制数 |
%x |
格式化无符号十六进制数 |
%X |
格式化无符号十六进制数(大写) |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%E |
作用同%e,用科学计数法格式化浮点数 |
%g |
%f和%e的简写 |
%G |
%f 和 %E 的简写 |
%p |
用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 |
功能 |
* |
定义宽度或者小数点精度 |
- |
用做左对齐 |
+ |
在正数前面显示加号( + )在正数前面显示空格 |
# |
在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 |
显示的数字前面填充’0’而不是默认的空格 |
% |
‘%%‘输出一个单一的’%’ |
(var) |
映射变量(字典参数) |
m.n. |
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
字符串内建函数:
名称 |
描述 |
capitalize() |
将字符串的第一个字符转换为大写 |
center(width, fillchar) |
返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 |
count(str, beg= 0,end=len(string)) |
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
bytes.decode(encoding=“utf-8”, errors=“strict”) |
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 |
encode(encoding=‘UTF-8’,errors=‘strict’) |
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’ |
endswith(suffix, beg=0, end=len(string)) |
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
expandtabs(tabsize=8) |
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 |
find(str, beg=0 end=len(string)) |
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 |
index(str, beg=0, end=len(string)) |
跟find()方法一样,只不过如果str不在字符串中会报一个异常 |
isalnum() |
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
isalpha() |
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
isdigit() |
如果字符串只包含数字则返回 True 否则返回 False. |
islower() |
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
isnumeric() |
如果字符串中只包含数字字符,则返回 True,否则返回 False |
isspace() |
如果字符串中只包含空白,则返回 True,否则返回 False. |
istitle() |
如果字符串是标题化的(见 title())则返回 True,否则返回 False |
isupper() |
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
join(seq) |
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
len(string) |
返回字符串长度 |
ljust(width[, fillchar]) |
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 |
lower() |
转换字符串中所有大写字符为小写. |
lstrip() |
截掉字符串左边的空格或指定字符。 |
maketrans() |
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
max(str) |
返回字符串 str 中最大的字母。 |
min(str) |
返回字符串 str 中最小的字母。 |
replace(old, new [, max]) |
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 |
rfind(str, beg=0,end=len(string)) |
类似于 find()函数,不过是从右边开始查找. |
rindex( str, beg=0, end=len(string)) |
类似于 index(),不过是从右边开始. |
rjust(width,[, fillchar]) |
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 |
rstrip() |
删除字符串字符串末尾的空格. |
split(str="", num=string.count(str)) |
num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串 |
splitlines([keepends]) |
按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
startswith(str, beg=0,end=len(string)) |
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 |
strip([chars]) |
在字符串上执行 lstrip()和 rstrip() |
swapcase() |
将字符串中大写转换为小写,小写转换为大写 |
title() |
返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
translate(table, deletechars="") |
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 |
upper() |
转换字符串中的小写字母为大写 |
zfill (width) |
返回长度为 width 的字符串,原字符串右对齐,前面填充0 |
isdecimal() |
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。 |
1.8.3 List列表
列表脚本操作符
列表对 + 和 *的操作符与字符串相似。+ 号用于组合列表, *号用于重复列表。
Python 表达式 |
结果 |
描述 |
len([1, 2, 3]) |
3 |
长度 |
[1, 2, 3] + [4, 5, 6] |
[1, 2, 3, 4, 5, 6] |
组合 |
[‘Hi!’] * 4 |
[‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] |
重复 |
3 in [1, 2, 3] |
True |
元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") |
1 2 3 |
迭代 |
列表截取与拼接
Python的列表截取与字符串操作类型,如下所示:L=[‘Google’, ‘Python’, ‘Taobao’]
Python 表达式 |
结果 |
描述 |
L[2] |
‘Taobao’ |
读取第三个元素 |
L[-2] |
‘Python’ |
从右侧开始读取倒数第二个元素: count from the right |
L[1:] |
[‘Python’, ‘Taobao’] |
输出从第二个元素开始后的所有元素 |
列表函数&方法
Python包含以下函数
序号 |
函数名称 |
说明 |
1 |
len(list) |
列表元素个数 |
2 |
max(list) |
返回列表元素最大值 |
3 |
min(list) |
返回列表元素最小值 |
4 |
list(seq) |
将元组转换为列表 |
Python包含以下方法
序号 |
方法名称 |
说明 |
1 |
list.append(obj) |
在列表末尾添加新的对象 |
2 |
list.count(obj) |
统计某个元素在列表中出现的次数 |
3 |
list.extend(seq) |
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 |
list.index(obj) |
从列表中找出某个值第一个匹配项的索引位置 |
5 |
list.insert(index, obj) |
将对象插入列表 |
6 |
list.pop(obj=list[-1]) |
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 |
list.remove(obj) |
移除列表中某个值的第一个匹配项 |
8 |
list.reverse() |
反向列表中元素 |
9 |
list.sort([func]) |
对原列表进行排序 |
10 |
list.clear() |
清空列表 |
11 |
list.copy() |
复制列表 |
1.8.4 Tuple元组
元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组
Python 表达式 |
结果 |
描述 |
len((1, 2, 3)) |
3 |
长度 |
(1, 2, 3) + (4, 5, 6) |
(1, 2, 3, 4, 5, 6) |
组合 |
(‘Hi!’) * 4 |
(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) |
重复 |
3 in (1, 2, 3) |
True |
元素是否存在于元组中 |
for x in (1, 2, 3): print(x, end=" ") |
1 2 3 |
迭代 |
元组索引,截取
因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素
如下所示:L=(‘Google’, ‘Python’, ‘Taobao’)
Python |
表达式 |
结果 |
描述 |
L[2] |
‘Taobao’ |
读取第三个元素 |
|
L[-2] |
‘Python’ |
从右侧开始读取倒数第二个元素: count from the right |
|
L[1:] |
(‘Python’, ‘Taobao’) |
输出从第二个元素开始后的所有元素 |
|
元组内置函数
序号 |
函数名称 |
说明 |
1 |
len(tuple) |
元组元素个数 |
2 |
max(tuple) |
返回元组元素最大值 |
3 |
min(tuple) |
返回元组元素最小值 |
4 |
tuple(seq) |
将元组转换为元组 |
1.8.5 Sets集合
集合的序列函数
序号 |
函数名称 |
说明 |
1 |
len(set) |
集合元素个数 |
2 |
max(set) |
返回集合元素最大值 |
3 |
min(set) |
返回集合元素最小值 |
4 |
set() |
创建空集合或者将其他数据转换为集合 |
集合中的方法
方法 |
意义 |
set.add(e) |
在集合中添加一个新的元素e;如果元素已经存在,则不添加 |
set.remove(e) |
从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误 |
set.discard(e) |
从集合S中移除一个元素e |
set.clear() |
清空集合内的所有元素 |
set.copy() |
将集合进行一次浅拷贝 |
set.pop() |
从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常 |
set.update(s2) |
用 S与s2得到的全集更新变量S |
以下内容可以用运算符操作代替 |
|
set.difference(s2) |
用S - s2 运算,返回存在于在S中,但不在s2中的所有元素的集合 |
set.difference_update(s2) |
等同于 set = set - s2 |
set.intersection(s2) |
等同于S & s2 |
set.isdisjoint(s2) |
如果S与s2交集为空返回True,非空则返回False |
set.issubset(s2) |
如果S与s2交集为非空返回True,空则返回False |
set.issuperset(…) |
如果S为s2的子集返回True,否则返回False |
set.symmetric_difference(s2) |
返回对称补集,等同于 set ^ s2 |
set.symmetric_difference_update(s2) |
用S 与 s2的对称补集更新 set |
set.union(s2) |
生成 set 与 s2的全集 |
1.8.6 Dictionary字典
创建字典
1.创建空字典
变量 = {} 或者 变量 = dict()
2.创建多个元素的字典:
方法1:
变量 = {键:值,键:值....}
方法2:
变量 = dict({键:值,键:值....})
方法3:
变量 = dict(键=值,键=值...)
注意:该方式键作为形参名使用不可以添加引号,必须符合变量规则
方法4:
变量 = dict([(键,值),(键,值)...])
变量 = dict([[键,值],[键,值]...])
变量 = dict(((键,值),(键,值)...))
方法5:
变量 = dict(zip((键,键...),(值,值...)))
字典的基本操作
访问字典的元素:
变量[键]
添加字典的元素
变量[新键] = 值
修改字典元素
变量[键] = 新值
删除字典元素
del 变量[键]
字典的遍历
1.键的遍历
for 变量i in 字典:
使用i遍历所有的键,有键就可以通过变量访问其值
2.键值遍历
for 变量i,变量j in 字典.items():
使用变量i遍历所有键,通过变量j遍历所有值
字典内涵/字典推导式
1.普通的字典内涵
变量= {key:value for key,value in 字典.items()}
2.带有判断条件的字典内涵
变量= {key:value for key,value in 字典.items() if 条件表达式}
3,多个循环的字典内涵
变量 = {i+x:j+y for i,j in 字典1.items for x,y in 字典2.items()}
4.带有判断条件的多个循环的字典内涵
变量 = {i+x:j+y for i,j in 字典1.items for x,y in 字典2.items() if 条件表达式}
字典内置函数&方法
Python字典包含了以下内置函数:
序号 |
函数名称 |
描述 |
1 |
len(dict) |
计算字典元素个数,即键的总数。 |
2 |
str(dict) |
输出字典,以可打印的字符串表示。 |
3 |
type(variable) |
返回输入的变量类型,如果变量是字典就返回字典类型。 |
Python字典包含了以下内置方法:
序号 |
方法名称 |
描述 |
1 |
radiansdict.clear() |
删除字典内所有元素 |
2 |
radiansdict.copy() |
返回一个字典的浅复制 |
3 |
radiansdict.fromkeys() |
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 |
radiansdict.get(key, default=None) |
返回指定键的值,如果值不在字典中返回default值 |
5 |
key in dict |
如果键在字典dict里返回true,否则返回false |
6 |
radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组 |
|
7 |
radiansdict.keys() |
以列表返回一个字典所有的键 |
8 |
radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
|
9 |
radiansdict.update(dict2) |
把字典dict2的键/值对更新到dict里 |
10 |
radiansdict.values() |
以列表返回字典中的所有值 |
11 |
pop(key[,default]) |
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 |
popitem() |
随机返回并删除字典中的一对键和值(一般删除末尾对)。 |