文章目录
- 前言
- 一、python列表解析式是什么?
- 二、解析表达式应用
-
- 1.引入
- 2.其他例子
- 总结
前言
python基础之列表解析式简单应用
一、python列表解析式是什么?
列表解析 List Comprehensions
表达式:[expression for iter_val in iterable if cond_expr]
[expression]:最后执行的结果
[for iter_val in iterable]:这个可以是一个多层循环
[if cond_expr]:两个for间是不能有判断语句的,判断语句只能在最后;顺序不定,默认是左到右。
列表解析式是将一个列表(实际上适用于任何可迭代对象(iterable))转换成另一个列表的方法。在转换过程中,可以指定元素必须符合一定的条件,才能添加至新的列表中,这样每个元素都可以按需要进行转换。
二、解析表达式应用
1.引入
(示例):
生成一个从1~n的平方的列表,如,输入 5
生成 l=[1,4,9,16,25]
普遍for循环做法:
l = []
n = eval(input("请输入n:"))
for i in range(1,n+1):
l.append(i**2)
print(l)
输出5,则输出结果如下
而此时我们引用列表解析式
n = eval(input("请输入n:"))
l = [i**2 for i in range(1,n+1)]
print(l)
或者我们直接直接合并上述三行代码,同样能生成有序平方列表
print([i**2 for i in range(1,eval(input("请输入n:"))+1)])
2.其他例子
1. 编写程序,输入一个字符串s,
输出其每个字符的ASCII码构成的列表L,
即L中的每个元素是s中每个字符的ASCII码。
print( [ord(i) for i in input("请输入一个字符串: ")])
2.编程计算前n个自然数的立方和,其中n的值由用户提供
print( sum([i**3 for i in range(1,int( input("请输入n的值:"))+1)]) )
如果我们学过C语言,就不难发现,python代码风格十分简洁明了,正是因为有了大量的库函数和解释性的语法,使得代码变得简单易懂。可能同样的一道编程题目,python代码量不及c语言的三分之一…由此可见python的魅力之一
同时,我们也能在列表解析式中使用if条件,比如计算前n个能被3整除的自然数
print([i for i in range(1,eval(input("请输入n:"))+1) if i%3==0])
总结
今天总结的python列表解析表达式就这样了,可能受限于个人能力及时间,写的略显仓促,很多原理上的东西还需要在深入研究,本人也只是应用层面,未曾向许多大牛一样有源码级的理解…
江湖路漫漫,学习编程也正是一个不断积累的过程,此博客纪念初学python的自己。