Python列表元素操作相关的2个函数和匿名函数

枫铃3年前 (2021-09-30)Python211

enumerate()函数:

遍历列表时,同时获取每个元素的索引号和对应的元素值:

l = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
for i, char in enumerate(l):    
    print('列表的第{}个元素是:{}'.format(i, char))

C:\ProgramData\Anaconda3\python.exe C:/Users/dwzhangguiling3/PycharmProjects/lect01/function_learn.py
列表的第0个元素是:a
列表的第1个元素是:b
列表的第2个元素是:c
列表的第3个元素是:d
列表的第4个元素是:e
列表的第5个元素是:f
列表的第6个元素是:g
列表的第7个元素是:h

Zip()函数

将两个列表聚合层一个zip类型数据

l1 = list(range(10)) 
l2 = list(range(100, 110))
print('列表1是:{}\n列表2是:{}\n,zip后的数据为:'.format(l1, l2))
l3 = zip(l1, l2) 
print(*l3)

C:\ProgramData\Anaconda3\python.exe

C:/Users/dwzhangguiling3/PycharmProjects/lect01/function_learn.py

列表1:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

列表2:[100, 101, 102, 103, 104, 105, 106, 107, 108, 109] ,

zip后的数据为:

(0, 100) (1, 101) (2, 102) (3, 103) (4, 104) (5, 105) (6, 106) (7, 107) (8, 108) (9, 109)

Process finished with exit code 0

lambda函数

add = lambda x, y : x+y
add(1,2)  # 结果为3

1、应用在函数式编程中

Python提供了很多函数式编程的特性,如:map、reduce、filter、sorted等这些函数都支持函数作为参数,lambda函数就可以应用在函数式编程中。如下:

# 需求:将列表中的元素按照绝对值大小进行升序排列
# 遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
# 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))

当然,也可以如下:

list1 = [3,5,-4,-1,0,-2,-6]
def get_abs(x):
    return abs(x)
sorted(list1,key=get_abs)

2、应用在闭包中

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def get_y(a,b):
     return lambda x:ax+b
y1 = get_y(1,1)
y1(1) # 结果为2

当然,也可以用常规函数实现闭包,如下:

def get_y(a,b):
    def func(x):
        return ax+b
    return func
y1 = get_y(1,1)
y1(1) # 结果为2

相关文章

Python 类常用各种方法及区别

Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。它们是如何定义的呢?如何调用的呢ÿ...

10道Python面试常见的问题

1.类继承 有如下的一段...

python字典的增,删,改,查

字典—dict 1.字典是无序,可变的数据类型 2.字典:用于存储数据,存储大量数据,字典要比列表快,...

python函数中把列表(list)当参数时的"入坑"与"出坑"

在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑. 入坑 挖坑 def f(x,li=[]):...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。