标签:多重循环 乘法口诀 列表解析 stp list 学习python 一个 values ESS
主要内容:如果看完这篇文章,你还是弄不明白列表解析;
你来找我,我保证不打你,我给你发100的大红包。
列表解析:创建新列表的一种方式,可以实现快速迭代。
基本语法:
需求:生成一个列表:[11,22,33...99]
使用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循环结束,表达式执行结束,生成新的列表
需求:成绩列表:
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]
1:执行for循环,将iter_val赋值;
2:执行if语句;
3:如果if表达式成立,执行expression;
4:如果if表达式不成立,继续执行第1步;
需求:能不能一条语句生成乘法口诀
‘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}={ij}‘,结果:‘1*1=1‘
4>继续执行第2个循环,执行结束,重新执行第一个循环,
5>依次类推,最终结果如上;
- 注意:一般不建议写多重循环,不利于维护与阅读
需求:s = ‘hello world‘,长度为10
s = ‘hello world‘
#1:使用s.split()对字符串切分,
#2:for循环遍历列表,计算每个单词长度
#3:使用sum统计长度
sum([len(wd) for wd in s.split()])
结果:10
数据:
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:计算总分,并出以数量,计算均值
以上就是列表解析相关常用操作,实际工作中,列表解析可能会更加灵活复杂,需要通过练习加强理解。
标签:多重循环 乘法口诀 列表解析 stp list 学习python 一个 values ESS
原文地址:https://blog.51cto.com/huangyg/2512570