1. 简介
Python作为一门灵活、强大的编程语言,常用于为大型工程提供支持。Python中常用的zip、lambda、map等函数能够极大地提高程序的效率。例如,zip函数可以将多个序列中的元素按位置组合成元组,用lambda函数可以创建匿名函数,而map函数可以应用于序列中的每个元素,并返回一个新的列表。在此,我们将分别介绍这三个函数,同时展示其在实际中的应用。
2. Zip函数
2.1 介绍
zip函数用于将多个列表、元组或其它序列中对应的元素打包成一个元组,即将所有序列中相同位置的元素取出组成一个新的元素,并将这些元素放入一个新的序列中。使用zip后,如果序列的长度不同,那么zip函数将以短序列的长度为准对所有序列进行截断,即多出的元素会被舍弃。
2.2 应用
应用一:将两个列表合并成一个字典。
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dict(zip(keys, values))
该代码将输出:
{'a': 1, 'b': 2, 'c': 3}
应用二:同时遍历多个序列。
name = ['Tom', 'Jerry', 'Spike']
age = [15, 18, 20]
gender = ['male', 'male', 'female']
for n, a, g in zip(name, age, gender):
print(n, a, g)
该代码将输出:
Tom 15 male
Jerry 18 male
Spike 20 female
3. Lambda函数
3.1 介绍
lambda函数是Python中的一种匿名函数,使用lambda函数可以用一行代码创建不需要额外命名的、简短的函数。它的语法格式为:
lambda arguments : expression
+arguments+:函数的参数列表。
+expression+:函数体,包含一个表达式,这个表达式的结果将作为这个函数的返回值。
3.2 应用
应用一:将原列表中的元素乘以二。
origin_list = [1, 2, 3, 4, 5]
new_list = list(map(lambda x:x*2, origin_list))
print(new_list)
该代码将输出:
[2, 4, 6, 8, 10]
应用二:根据学生的成绩打印对应等级。
scores = [60, 70, 80, 90, 100]
grades = list(map(lambda x: 'E' if x<60 else 'D' if x<70 else 'C' if x<80 else 'B' if x<90 else 'A', scores))
print(grades)
该代码将输出:
['D', 'C', 'B', 'A', 'A']
4. Map函数
4.1 介绍
map函数是Python中的一种内置函数,它接受两个参数,一个是函数,一个是序列,map函数将函数应用于序列中的每个元素,并返回一个将所有结果组成的新列表。
4.2 应用
应用一:将摄氏度转换为华氏度。
temps = [25.2, 30.4, 36.6, 41.7, 37.8]
to_fahrenheit = lambda t: (t * 1.8) + 32
fahrenheit_temps = list(map(to_fahrenheit, temps))
print(fahrenheit_temps)
该代码将输出:
[77.36, 86.72, 97.88, 107.06, 100.039999999]
应用二:计算多个数的乘积。
nums = [1, 2, 3, 4, 5]
product = 1
for num in list(map(lambda x: x, nums)):
product *= num
print(product)
该代码将输出:
120
5. 总结
本文介绍了Python中的zip、lambda、map三个函数,并展示了它们在实际中的应用。zip函数可以将多个序列中的元素按位置组合成元组,lambda函数可以创建匿名函数,而map函数可以应用于序列中的每个元素,并返回一个新的列表。这三个函数能够极大地提高程序的效率,使代码更加简洁易读,是Python编程中常用的函数之一。