内容正文:
《Python应用程序设计》
Python 列表推导式
计算机教科组
1
列表推导式
列表推导式:循环创建列表
1.列表推导式会遍历后面的可迭代对象,然后按照for前的表达式进行运算,生成最终的列表.
2.如果有if条件语句,for遍历后紧跟着进行条件判断.
# for循环
list_a = list()
for a in range(5):
list_a.append(a)
print(list_a)
#列表推导式
list_b = [b for b in range(5)]
print(list_b)
列表推导式
print([2 for i in range(10)]) 输出[2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
print([i for i in range(10)]) 输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
上面分别是用for循环和列表推导式创建列表的代码,list_a和list_b的结果是一样的,都是[0, 1, 2, 3, 4].
# in后面跟其他可迭代对象,如字符串
list1 = [3 * c for c in "python"]
print(list1) #['ppp', 'yyy', 'ttt', 'hhh', 'ooo', 'nnn']
# 带if条件语句的列表推导式
list2 = [d for d in range(6) if d % 2 != 0]
print(list2) #[1, 3, 5]
列表推导式
例子1:表达式[x*x for x in range(1,6)]的结果是什么?
答:[1, 4, 9, 16, 25]
例子2:表达式[x*x for x in range(1,6) if x%2==1]的结果是什么?
答:[1, 9, 25]
例子3:全排列
表达式[x+y for x in 'AB' for y in '12']的结果是什么?
答:['A1', 'A2', 'B1', 'B2']
例子4:多个变量的生成式
以下程序运行结果是什么?
d={'A':'1','B':'2'}
print([k+"="+v for k,v in d.items()])
答:['A=1', 'B=2']
列表推导式
例子5:编写程序,生成一个26个大写字母和26个小写字母组成的列表。
即产生列表['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
参考代码:
dz=[chr(65+i) for i in range(26)] #产生大写字母组成的列表
xx=[chr(97+i) for i in range(26)] #产生小写字母组成的列表
print(dz+xx)
列表推导式:课堂练习
1.表达式 [x for x in [1,2,3,4,5] if x<3] 的值为?
2.表达式 [i for i in range(10) if i>8] 的值为?
3.print([i for i in range(10) if i%3==0])运行结果是?
N-S程序流程图
多分支结构
N-S程序流程图:1+2+3+...+100
THANK YOU
9
$