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

列表生成式:Python中快速生成列表的方法

发布时间:2023-06-16 15:44:48

列表生成式,又称列表推导式,是Python中快速生成列表的方法之一。使用列表生成式可以简洁明了地描述出一个列表的生成规则,从而快速地生成一个列表。列表生成式极大地提高了Python程序的运行效率和代码的可读性。

列表生成式的语法格式为:[expression for item in iterable if condition]。其中,expression 是列表中每个元素的表达式,item 是可迭代对象 iterable 中的单个元素,if condition 是可选的条件表达式,用于筛选元素。

下面,我们通过几个例子来说明列表生成式的使用方法。

1. 生成一个由 1-10 的整数组成的列表

按照常规的方法,我们需要通过循环语句和 append() 函数来生成这个列表。但是,使用列表生成式可以更加简单和高效:

num_list = [i for i in range(1,11)]

print(num_list)

输出结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2. 生成一个由 1-10 的偶数组成的列表

我们可以在列表生成式中添加 if 条件表达式来筛选元素:

even_num_list = [i for i in range(1,11) if i % 2 == 0]

print(even_num_list)

输出结果为:

[2, 4, 6, 8, 10]

3. 将一个字符串的每个字符作为一个元素生成一个列表

我们可以将一个字符串赋值给一个变量,然后使用列表生成式将其转换为列表:

str1 = "hello world"

char_list = [c for c in str1]

print(char_list)

输出结果为:

['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

4. 使用多重循环生成一个二维数组

我们可以在列表生成式中使用多重循环来生成一个二维数组:

list2d = [[i,j] for i in range(2) for j in range(3)]

print(list2d)

输出结果为:

[[0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2]]

5. 将一个字典的键值对转换为一个元素是元组的列表

我们可以使用字典的 items() 方法生成键值对,然后使用列表生成式将其转换为一个元素是元组的列表:

dict1 = {"a":1, "b":2, "c":3}

tuple_list = [(k,v) for k,v in dict1.items()]

print(tuple_list)

输出结果为:

[('a', 1), ('b', 2), ('c', 3)]

列表生成式是Python中常用的一种构造列表的方法,它不仅简洁明了、代码可读性高,而且运行速度也非常快。因此,在编写Python程序时,我们可以适当地使用列表生成式来提高代码的效率。