一、range()函数
python的range()函数可用来创建一个整数列表,一般用在 for 循环中。
range()语法:range(start, stop[, step])
二、列表推导式
列表推导式(list comprehension)是指循环创建列表。
语法规范:
out_list = [out_express for out_express in input_list if out_express_condition]
for循环有非常广的应用场景,也可以用来创建一个列表,而列表推导式相当于for循环创建列表的简化版。
list_e = [(e, f * f) for e in range(3) for f in range(5, 15, 5)]
list1 = [x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
看一个矩阵例子:
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ] flattened = [] for row in matrix: for i in row: flattened.append(i)
1、我们用列表推导式实现该功能(把一个矩阵(以列表为元素的列表)展平为一个列表):
flattened = [i for row in matrix for i in row]
下面的推导式语法 错误 row未定义:flat = [i for i in row for row in matrix]
2、使用列表推导式实现矩阵转置: trans = [[row[i] for row in matrix] for i in range(3)]
3、生成10个随机数: import random
array = [random.randint(1, 100) for i in range(10)]4、year, month, day = [int(x) for x in input('input year/month/day: ').split('/')]
三、字典推导式
list_phone = [('HUAWEI', '华为'), ('MI', '小米'), ('OPPO', 'OPPO'), ('VIVO', 'VIVO')]
dict_c = {key: value for key, value in list_phone}
print(dict_c)
四、集合推导式
set_a = {value for value in '有人云淡风轻,有人负重前行'}
集合是无序且不重复的,所以会自动去掉重复的元素,并且每次运行显示的顺序不一样。
从上面的代码中可以总结:
集合推导式就是将列表推导式的[]换成{},字典推导式就是推导出两个值并构建成键值对的样子。
另外,不管是字典推导式还是集合推导式,后面都可以像列表推导式一样接if条件语句,嵌套循环等,具体可以根据您自己的需求来使用。