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