七、列表推导式
- 列表推导式(也叫列表生成式)
- 生成有元素的列表(在某些场景下能代替append)
- 性能比较:列表推导式 > append
1、语法1
list1 = []
for i in range(0, 101, 5):
list1.append(i)
print(list1)
list2 = [i for i in range(0, 101, 5)]
print(list2)
- 将某个元素在列表中重复N次(如果for循环中变量没有实际意义,可以使用下划线"_"代替)
list3 = [[1, 2, 3] for _ in range(10)]
print(list3)
2、语法2
- [符合条件的表达式 for 变量 in 容器 if 条件]
list4 = [i for i in range(101) if i % 5 == 0]
print(list4)
list5 = [True if i % 5 == 0 else False for i in range(11)]
print(list5)
3、语法3
- [表达式 for 变量1 in 容器1 for 变量2 in 容器2]
list6 = [f'{i}*{j}={i * j}' for i in range(1, 10) for j in range(1, i + 1)]
print(list6)
import random
score = [[random.randint(0, 100) for _ in range(3)] for _ in range(5)]
print(score)
八、 列表推导式和append的性能比较
- time():获取时间戳,从1970.1.1开始到time()方法被执行时的秒数。
import time
print(time.time())
print('append方法')
start = time.time()
list1 = []
for i in range(1, 100000001): # 循环次数视电脑情况而定
list1.append(i)
end = time.time()
print(f'花费时间{end - start}秒')
print('列表推导式')
start = time.time()
list2 = [i for i in range(1, 100000001)]
end = time.time()
print(f'花费时间{end - start}秒')