欢迎访问宙启技术站
智能推送

列表推导式的使用方法及例子

发布时间:2023-06-17 00:06:11

列表推导式(List comprehension)是Python语言中一种简洁、高效的编程方式,可以非常方便地生成列表。它的语法比较简单,形式为 [expr for var in iterable],其中expr表示表达式,var表示可迭代对象中的元素,iterable为可迭代对象。列表推导式常用于快速生成列表,处理数据,筛选数据等。

1.快速生成1~10的平方列表

squares = [x ** 2 for x in range(1, 11)]
print(squares)

输出结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

解释:该列表推导式首先使用range函数生成1~10的整数序列,然后对序列中的每个元素进行平方操作,最后得到一个包含1到10的平方的列表。

2.筛选出大于5的偶数

lst = [2, 3, 4, 5, 6, 7, 8, 9, 10]
result = [x for x in lst if x > 5 and x % 2 == 0]
print(result)

输出结果:[6, 8, 10]

解释:该列表推导式使用了if关键字进行筛选,只有当元素大于5且为偶数时,才会加入到新的列表中。

3.将字符串列表中的所有字符串都变成小写

lst = ['Hello', 'World', 'Python', 'List', 'Comprehension']
result = [x.lower() for x in lst]
print(result)

输出结果:['hello', 'world', 'python', 'list', 'comprehension']

解释:该列表推导式使用了字符串的lower方法,将每个元素都变成小写,并将这些小写字符串加入到新的列表中。

4.使用两个列表的元素构造新的元组列表

lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
result = [(x, y) for x in lst1 for y in lst2]
print(result)

输出结果:[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)]

解释:该列表推导式使用了两个for关键字,分别对lst1和lst2进行遍历,并将每个元素构造成一个元组,最终生成一个新的元组列表。

5.使用if和else关键字根据条件生成不同的元素

lst = [2, 3, 4, 5, 6, 7, 8, 9, 10]
result = [x * 2 if x % 2 == 0 else x for x in lst]
print(result)

输出结果:[4, 3, 8, 5, 12, 7, 16, 9, 20]

解释:该列表推导式使用了if和else关键字,当元素是偶数时,将它加入到新列表中并乘以2,否则将它加入到新列表中。

总结:列表推导式是Python中一种非常方便、简洁的语法,可以快速生成列表、筛选数据等,使代码更加简洁优美。当需要使用循环或条件语句来处理可迭代对象时,列表推导式是非常有用的工具。