1 列表生成式
即将for循环放在列表里面,将需要返回的值,放在列表的最前面
生成一个列表,列表元素分别为[1**1,2**2....9**9]
首先我们使用一般的for循环
import math
li = []
for i in range(1, 10):
li.append(i ** i)
print(li)
然后使用列表生成式
import math
print([i ** i for i in range(1, 10)])
2 字典生成式
假设有20个学生,学生的分数在60~100之间,筛选出成绩在90分以上的学生
首先按照一般的for循环来做
#首先生成一个这样的字典,用for循环来做
import random
stuInfo = {}
for i in range(20):
name = 'westos' + str(i)
score = random.randint(60, 100)
stuInfo[name] = score
print(stuInfo)
highscore = {}
for name, score in stuInfo.items():
if score > 90:
highscore[name] = score
print(highscore)
#用字典生成式来做
import random
stuInfo = {}
for i in range(20):
name = 'westos' + str(i)
score = random.randint(60, 100)
stuInfo[name] = score
print(stuInfo)
print({name: score for name, score in stuInfo.items() if score > 90})