马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 15271953841 于 2024-2-21 06:35 编辑
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
跟序列相关的一些函数
列表、元组和字符串相互转换
一、list() 将可迭代对象转换成列表、 tuple() 将可迭代对象转换成元组、 str() 把可迭代对象转换成字符串,但是只是在列表和元组的中括号和小括号还在,只是在外围加了一个引号,实际上已经变成了一个不可变序列了。
list("FishC")
['F', 'i', 's', 'h', 'C']
list((1,2,3,4,5))
[1, 2, 3, 4, 5]
tuple("FishC")
('F', 'i', 's', 'h', 'C')
tuple([1,2,3,4,5])
(1, 2, 3, 4, 5)
str([1,2,3,4,5])
'[1, 2, 3, 4, 5]'
str((1,2,3,4,5))
'(1, 2, 3, 4, 5)'
二、min() & max()
min(iterable,*[,key,default]) (第一种是传入可迭代对象)
min(arg1,arg2,*args[,key]) (第二种是传入多个参数,自动找出最小值)
max(iterable,*[,key,default])
max(arg1,arg2,*args[,key])
s=[1,2,3,4,5]
min(s)
1 (找到最小值)
max(s)
5
t="FishC"
max(t)
's' (如果是字符串,比较的字符串中每一个字符的编码值,具体编码值不用记,只需知道26个字母的顺序,大写26个字母编码值是在小写26个字母之前的。
s=[]
min(s)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module> (报错)
min(s)
ValueError: min() iterable argument is empty
min(s,default="屁,啥都没有,怎么找最小")
'屁,啥都没有,怎么找最小'
min(1,2,3,0,6)
0
max(1,2,3,0,6)
6
三、len() & sum()
len(range(2**100)) (报错,原因是len()函数有个最大可承受范围,32位电脑最大值是2的31次方减1,64位电脑的最大值是2的63次方减1.)
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
len(range(2**100))
OverflowError: Python int too large to convert to C ssize_t
s=[1,0,0,8,6]
sum(s)
15
sum(s,start=100) (start=100是求和计算的起始值)
115
四、sorted() & reversed
s=[1,2,3,0,6]
sorted(s)
[0, 1, 2, 3, 6] (sorted排序并重新列表,原列表不变)
s
[1, 2, 3, 0, 6]
s.sort() (列表的sort的方法,在前面列表3-列表的改和查中讲到过,原地排序,原列表改变)
s
[0, 1, 2, 3, 6]
sorted也支持key和reverse参数,用法与列表3中讲的s.sort的方法一致。
s.sort(key=None,reverse=False)对列表中的元素进行原地排序(key参数用于指定一个用于比较(一个干预排序算法)的函数,reverse参数用于指定排序后结果是否翻转)
sorted(s,reverse=True)
[6, 3, 2, 1, 0]
t=["FishC","Apple","Book","Banana","Pen"] (对比的是每个字符串的每一个字符的编码值)一个字母比不出结果,再比第二个字母,以此类推)
sorted(t)
['Apple', 'Banana', 'Book', 'FishC', 'Pen']
sorted(t,key=len)
['Pen', 'Book', 'FishC', 'Apple', 'Banana']
t=["Apple","Book","Banana","Pen","FishC",]
sorted(t,key=len) (sort底层是归并排序,属于稳定排序,所以相同的数据情况下,原数据在前面的排序依然在前面)
['Pen', 'Book', 'Apple', 'FishC', 'Banana']
t.sort(key=len) (列表的sort方法)
t
['Pen', 'Book', 'Apple', 'FishC', 'Banana']
列表的sort方法,只能处理列表,它不能处理元组和字符串这一类型,但是sorted就不一样了,它可以接受任何形式的可迭代对象作为参数。
sorted("FishC")
['C', 'F', 'h', 'i', 's'] (都返回列表的结果)
sorted((1,0,0,8,6))
[0, 0, 1, 6, 8] (都返回列表的结果)
s=[1,2,5,8,0]
reversed(s)
<list_reverseiterator object at 0x000001436ED7B6D0> (它返回的是一个反向可迭代器,可迭代对象)
list(reversed(s))
[0, 8, 5, 2, 1]
s.reverse()
s
[0, 8, 5, 2, 1]
list(reversed("FishC"))
['C', 'h', 's', 'i', 'F']
list(reversed((1,2,5,9,3)))
[3, 9, 5, 2, 1]
list(reversed(range(0,10)))
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
|