序列内建函数

66 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情


大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:



序列内建函数

len函数

len: 返回序列的长度.

a = [2,3,4,5]
print(len(a))   #4
b = "hello"
print(len(b))   #5

max函数 -O(N)

max: 返回序列中的最大值

a = [2,3,4,5]
print(max(a))   #5
b = "helloz"
print(max(b))   #z

min函数 -O(N)

min: 返回序列中的最小值

a = [2,3,4,5]
print(min(a))   #2
b = "helloz"
print(min(b))   #e

sorted函数

sorted: 排序. 这是一个非常有用的函数. 返回一个有序的序列(输入参数的副本).

a = ['abc','acb','a','b']   
print(sorted(a))    #['a', 'abc', 'acb', 'b']
a = [5,3,3,1,5]
print(sorted(a))    #[1, 3, 3, 5, 5]

sorted可以支持自定制排序规则


sum函数

sum: 序列中的元素求和(要求序列中的元素都是数字)

a = [1,2,3,4,5]
print(sum(a))   #15
a= [1,'a']
print(sum(a))   #报错  unsupported operand type(s) for +: 'int' and 'str'

enumerate函数

enumerate: 同时枚举出序列的下标和值 可以避免很多丑陋的代码.

例如:找出元素在列表中的下标

a = [1,2,3,4,5]
def Find(input_list,x):
    for i in range(0,len(input_list)):
        if input_list[i] == x:
            return  i
    else:   #此处的else和for搭配
        return Noneprint(Find(a,2))    #1  下标为1

这里用for循环写的就不够优雅,使用enumerate函数就可以写的很优雅

a = [1,2,3,4,5]
def Find(input_list,x):
    for i ,item in enumerate(input_list):
        if item == x:
            return  i
    else:   #此处的else和for搭配
        return Noneprint(Find(a,2))    #1 下标为1

zip函数

zip: 这个函数的本意是 "拉链",

x = [1,2,3]
y = [4,5,6]
z = [7,8,9,10]  #多余的10不要,3行3列
​
print(zip(x,y,z))   #直接打印是对象的id <zip object at 0x000001581CFE7748>
#把执行结果强转为list,列表
print(list(zip(x,y,z))) #[(1, 4, 7), (2, 5, 8), (3, 6, 9)]#直观打印
for i in zip(x,y,z):
    print(i)
#执行结果:
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)

zip可以理解为行列互换


zip的一个比较常见的用法, 就是构造字典

key = ('name','id','score')
value =('Mango','2022','99')
d = dict(zip(key,value))    #执行结果转为一个字典
print(d)    #  {'name': 'Mango', 'id': '2022', 'score': '99'}

\