以下为《Python基本数据结构》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
Python字符串内置函数
大小写处理
函数
作用
示例
输出
capitalize
首字母大写,其余小写
‘lk with psr'.capitalize()
‘Lk with psr'
upper
全部大写
‘lk with psr'.upper()
‘LK WITH PSR'
lower
全部小写
‘lk with psr'.lower()
‘lk with psr'
swapcase()
大小写互换
‘Lk with Psr'.swapcase()
‘lK WITH pSR'
.title()
首字母大写
‘lk with psr'.title()
‘Lk With Psr'
?判断字符串中的字符类型
函数
作用
示例
输出
startswith(‘a',[start,end])
是否以a开头
‘a lk'.startswith(‘a')
True
endswith(‘a')
是否以a结尾
‘lk'.endswith(‘a')
False
isalnum()
是否全为字母或数字
‘123asd'.isalnum()
True
isalpha()
是否全字母
‘lk12'.isalpha()
True
isdigit()
是否全数字
‘123'.isdigit()
True
islower()
是否全小写
‘lk'.islower()
True
isupper()
是否全大写
‘lk'.isupper()
False
istitle()
判断首字母是否为大写
‘Lk'.istitle()
True
isspace()
判断字符是否为空格
' '.isspace()
True
?字符串替换?
函数
作用
示例
输出
replace(‘old',‘new')
替换old为new
'hello world'.replace(‘world',‘python')
hello python
replace(‘old',‘new',次数)
替换指定次数的old为new
'hello world'.replace(‘l',‘p',2)
heppo world
去空格
函数
作用
示例
输出
strip()
去两边空格
' h e-l lo '.strip()
可以想象
lstrip()
去左边空格
' h e-l lo '.lstrip()
可以想象
rstrip()
去右边空格
' h e-l lo '.rstrip()
可以想象
用特定符连某某单个字符?
函数
作用
示例
输出
.join()
-连某某
‘-'.join([‘a', ‘b', ‘c'])
a-b-c
?用字符串中的特定符分割字符串?
函数
作用
示例
输出
split()
默认按空格分隔
' h e-l lo ' .split()
[‘h', ‘e-l', ‘lo']
split(‘指定字符')
按指定字符分割字符串为数组
' h e-l lo ' .split('-')
[' h e', 'l lo ']
?搜索
函数
作用
示例
输出
find()
搜索指定字符串,没有返回-1
‘lk la'.find(‘lk')
0
index()
同上,但是找不到会报错
‘lk la'.index(‘lk')
0
rfind()
从右边开始查找
‘lk la'.rfind(‘lk')
0
count()
统计指定的字符串出现的次数
‘lklklk'.count(‘lk')
3
?python中str函数isdigit、isdecimal、isnumeric的区别
isdigit()True: Unicode数字,byte数字(单某某),全角数字(双字节),罗马数字False: 汉字数字Error: 无
isdecimal()True: Unicode数字,,全角数字(双字节)False: 罗马数字,汉字数字Error: byte数字(单某某)
isnumeric()True: Unicode数字,全角数字(双字节),罗马数字,汉字数字False: 无Error: byte数字(单某某)
1.列表相关的内置函数
all(iterable):这个函数返回一个布尔值。如果iterable的所有元素都为真(或iterable自身为空)则返回True,否则返回False。
例:all[2,3,0]将返回False
any(iterable):这个函数返回一个布尔值。如果iterable的任一元素为真则返回True,如果iterable的所有元素均为假(或iterable自身为空值)则返回False
例如: any[2,3,0]执行将返回True。
?
len(s):这个函数返回对象的长度(元素的个数)。此函数适用于序列(如字符串、元组、列表或者范围)或者集合(如字典、集合或者固定集合)。
例如:len[1,1,1,1]执行将返回4
max(iterable):这个函数将返回可迭代对象iterable中最大的元素。
例如, max[1,3,0]将返回3
min(iterable):这个函数将返回可迭代对象iterable中最小的元素。
例如, max[1,3,0]将返回0
sorted(iterable[, cmp[,key[, reverse]]]这个函数将可迭代对象iterable进行排序并返回一个新的列表。可选参数cmp是一个带有两个参数的比较函数,它根据第一个参数小于等于
还是大于第二个参数来返回负数、零或正数,默认值为None。可选参数key是带有一个参数的函数,用于从每个列表元素中选出一个比较的关键字,默认值是None reverse是一个布
尔值如果将其设置为True,那么列表元素将以反向排序。例如, sort([2,3, 1])将返回一个列表[1, 2, 3]。
?
sum(iterablel[,start]):返回可迭代对象iterable从start位置开始向右所有元素的和。start默认为0。
例如, sum([1, 2, 3, 4])将返回10。
?
?
2.列表类的成员函数list.append(x):这个函数将添加一个元素x到列表的末尾,相当于list = list + [x]?
例:定义myList=[1,2,3],执行myList.append(4)后的列表中的值为[1,2, 3,4].
?
list.extend(L):这个函数将列表L的所有元素添加到原列表的末尾,相当于list = list +L?
例:定义myList = [1, 2,3],执行myList.extend([4, 5])后的列表中的值为[1,2, 3, 4, 5]
list.insert(i, x):这个函数将在下标i处插入一个元素x。因此, list.insert(0, x)相当于在 列表的最前面插入,而list.insert(len(list), x)相当于list.append(x)。
例如,定义myList = [1,2, 3],执行myList.insert(1, 4)后的列表中的值为[1,4, 2, 3]。
list.remove(x):这个函数将删除列表中第一个值为x的元素。如果没有这样的元素则程序 将报错。
例如,定义myList= [1, 2, 3, 2],执行myList.remove(2)后的列表中的值为[1, 3, 2]
list.pop([i]):这个函数将弹出列表中位置为i的元素(即从列表中删除该元素并返回 它)。如果不指定参数i,则默认删除列表中的最后一个元素。
例如,定义myList =[1,2, 3] 执行myList.pop(0)后的列表中的值为[2, 3],再次执行myList.pop()后的列表中的值为[2] ,pop函数是唯一一个既能修改列表又能返回元素值的列表方法。
list.index(x):这个函数将返回列表中第一个值为x的元素的索引(下标)。如果没有这 样的元素则会报错。
例如,定义myList=[1, 2, 3, 2],执行myList.index(2)将返回1
list.count(x):这个函数将返回列表中x出现的次数。
例如,定义myList =[1, 2, 3, 2] 执行myList.count(2)将返回2
list.sort(cmp=None, key=None, reverse=False):这个函数将列表进行重新排序,参数含义 与sorted内置函数的可选参数含义一致。
例如,定义myList =[1, 3, 2, 4],执行mylList.sort()后 列表将变为[1,2, 3,4],若执行myList.ort(reverse=True),则列表中的值为1[4,3,2, 1]
list.reverse():这个函数将反转列表中的所有元素位置。
例如,定义myList = [1, 3, 2, 4), 执行myList.reverse()后列表中的值为[4, 2, 3, 1]。
字典的常用方法
字典由 dict 类代表,因此我们同样可使用 dir(dict) 来查看该类包含哪些方法。在交互式解释器中输入 dir(dict) 命令,将看到如下输出结果:
>>> dir(dict)['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']>>>
下面介绍 dict 的一些方法。
clear()方法
clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典。例如如下代码:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
print(cars) # {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
# 清空cars所有key-value对
cars.clear()
print(cars) # {}
get()方法
get() 方法其实就是根据 key 来获取 value,它相当于方括号语法的增强版,当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。例如如下代码:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
# 获取'BMW'对应的value
print(cars.get('BMW')) # 8.5
print(cars.get('PORSCHE')) # None
print(cars['PORSCHE']) # KeyError
update()方法
update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。例如如下代码:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
cars.update({'BMW':4.5, 'PORSCHE': 9.3})
print(cars)
从上面的执行过程可以看出,由于被更新的 dict 中己包含 key 为“AUDI”的 key-value 对,因此更新时某某 key-value 对的 value 将被改写;但如果被更新的 dict 中不包含 key 为“PORSCHE”的 key-value 对,那么更新时就会为原字典增加一个 key-value 对。
items()、keys()、values()
items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象,Python 不希望用户直接操作这几个方法,但可通过 list() 函数把它们转换成列表。如下代码示范了这三个方法的用法:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
# 获取字典所有的key-value对,返回一个dict_items对象
ims = cars.items()
print(type(ims)) #
# 将dict_items转换成列表
print(list(ims)) # [('BMW', 8.5), ('BENS', 8.3), ('AUDI', 7.9)]
# 访问第2个key-value对
print(list(ims)[1]) # ('BENS', 8.3)
# 获取字典所有的key,返回一个dict_keys对象
kys = cars.keys()
print(type(kys)) #
# 将dict_keys转换成列表
print(list(kys)) # ['BMW', 'BENS', 'AUDI']
# 访问第2个key
print(list(kys)[1]) # 'BENS'
# 获取字典所有的value,返回一个dict_values对象
vals = cars.values()
# 将dict_values转换成列表
print(type(vals)) # [8.5, 8.3, 7.9]
# 访问第2个value
print(list(vals)[1]) # 8.3
从上面代码可以看出,程序调用字典的 items()、keys()、values() 方法之后,都需要调用 list() 函数将它们转换为列表,这样即可把这三个方法的返回值转换为列表。
在 Python 2.x 中,items()、keys()、values() 方法的返回值本来就是列表,完全可以不用 list() 函数进行处理。当然,使用 list() 函数处理也行,列表被处理之后依然是列表。
pop方法
pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对。如下方法示范了 pop() 方法的用法:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
print(cars.pop('AUDI')) # 7.9
print(cars) # {'BMW': 8.5, 'BENS': 8.3}
此程序中,第 2 行代码将会获取“AUDI”对应的 value,并删除该 key-value 对。
popitem()方法
popitem() 方法用于随机弹出字典中的一个 key-value 对。
此处的随机其实是假的,正如列表的 pop() 方法总是弹出列表中最后一个元素,实际上字典的 popitem() 其实也是弹出字典中最后一个 key-value 对。由于字典存储 key-value 对的顺序是不可知的,因此开发者感觉字典的 popitem() 方法是“随机”弹出的,但实际上字典的 popitem() 方法总是弹出底层存储的最后一个 key-value 对。
如下代码示范了 popitem() 方法的用法:
cars = {'AUDI': 7.9, 'BENS': 8.3, 'BMW': 8.5}
print(cars)
# 弹出字典底层存储的最后一个key-value对
print(cars.popitem()) # ('AUDI', 7.9)
print(cars) # {'BMW': 8.5, 'BENS': 8.3}
由于实际上 popitem 弹出的就是一个元组,因此程序完全可以通过序列解包的方式用两个变量分别接收 key 和 value。例如如下代码:
# 将弹出项的key赋值给k、value赋值给v
k, v = cars.popitem()
print(k, v) # BENS 8.3
setdefault()方法
setdefault() 方法也用于根据 key 来获取对应 value 的值。但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value。总之,setdefault() 方法总能返回指定 key 对应的 value;如果该 key-value 对存在,则直接返回该 key 对应的 value;如果该 key-value 对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value。如下代码示范了 setdefault() 方法的用法:
cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
# 设置默认值,该key在dict中不存在,新增key-value对
print(cars.setdefault('PORSCHE', 9.2)) # 9.2
print(cars)
# 设置默认值,该key在dict中存在,不会修改dict内容
print(cars.setdefault('BMW', 3.4)) # 8.5
print(cars)
fromkeys()方法
fromkeys() 方法使用给定的多个 key 创建字典,这些 key 对应的 value 默认都是 None;也可以额外传入一个参数作为默认的 value。该方法一般不会使用字典对象调用(没什么意义),通常会使用 dict 类直接调用。例如如下代码:
# 使用列表创建包含2个key的字典
a_dict = dict.fromkeys(['a', 'b'])
print(a_dict) # {'a': None, 'b': None}
# 使用元组创建包含2个key的字典
b_dict = dict.fromkeys((13, 17))
print(b_dict) # {13: None, 17: None}
# 使用元组创建包含2个key的字典,指定默认的value
c_dict = dict.fromkeys((13, 17), 'good')
print(c_dict) # {13: 'good', 17: 'good'}
使用字典格式化字符串
前面章节介绍过,在格式化字符串时,如果要格式化的字符串模板中包含多个变量,后面就需要按顺序给出多个变量,这种方式对于字符 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 t({1,2,3,4}) 3.固定集合的运算 交集(&),并集(|),补集(-),对称补集(^) ,>=,>> 'Age: %s. Gender: %s' % (25, True)'Age: 25. Gender: True'
有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:
>>> 'growth rate: %d %%' % 7'growth rate: 7 %'
format()
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:
>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)'Hello, 小明, 成绩提升了 17.1%'
[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《Python基本数据结构》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。