主要内容:
小目标:掌握列表解析 主要内容:列表解析语法,列表解析使用如果看完这篇文章,你还是弄不明白列表解析; 你来找我,我保证不打你,我给你发100的大红包。
1. 列表解析
列表解析:创建新列表的一种方式,可以实现快速迭代。 基本语法:
[expression for iter_val in iterable] [expression for iter_val in iterable if cond_expr]2. 列表解析应用
需求:生成一个列表:[1 1,2 2,3 3...9 9]
使用for循环:
listv = [] for i in range(1,10): listv.append(i*i) print(listv)
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]使用列表解析:
listv = [i*i for i in range(1,10)] print(listv)
结果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]列表解析执行过程:
1:执行for循环,将i赋值 2:执行表达式i,将表达式结果添加到列表中 3:for循环结束,表达式执行结束,生成新的列表
3. 列表解析添加条件判断
需求:成绩列表:
plist = [90,88,77,56,64,99]
过滤出及格成绩
plist = [90,88,77,56,64,99] listpass = [v for v in plist if v >=60] print(listpass)
结果:
[90, 88, 77, 64, 99]列表解析执行过程: [expression for iter_val in iterable if cond_expr]
1:执行for循环,将iter_val赋值; 2:执行if语句; 3:如果if表达式成立,执行expression; 4:如果if表达式不成立,继续执行第1步;
4. 列表解析多层循环需求:能不能一条语句生成乘法口诀
'1*1=1', '1*2=2', '2*2=4', ... '9*9=81'
上操作:
[f'{j}*{i}={i*j}' for i in range(1,10) for j in range(1,i+1)]
来咱么仔细分析执行过程:
1:先执行第一个循环,i值取1 2:执行第二个循环,j值取1 3:执行表达式f'{j} {i}={i j}',结果:'1*1=1' 4>继续执行第2个循环,执行结束,重新执行第一个循环, 5>依次类推,最终结果如上;
注意:一般不建议写多重循环,不利于维护与阅读 5. 列表解析小练习 5.1 统计句子中,所有单词的长度和需求:s = 'hello world',长度为10
s = 'hello world' #1:使用s.split()对字符串切分, #2:for循环遍历列表,计算每个单词长度 #3:使用sum统计长度 sum([len(wd) for wd in s.split()])
结果:10
5.2 统计学生成绩平均分数据:
data = {'数学':'90','语文':'80', '体育':'89'}
实现:
data = {'数学':'90','语文':'80', '体育':'70'} sum([int(score) for score in data.values()])/len(data)
结果:80
执行过程:
1:获取data的values, 2:遍历values,并将其转成数字 3:计算总分,并出以数量,计算均值
结果:
以上就是列表解析相关常用操作,实际工作中,列表解析可能会更加灵活复杂,需要通过练习加强理解。
查看更多关于21天学习python编程_列表解析的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did170227