python zip,lambda,map函数代码实例

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编程中常用的函数之一。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签