美文网首页Python
python-解析语句、条件语句、打包和解包

python-解析语句、条件语句、打包和解包

作者: DKider | 来源:发表于2019-04-15 20:23 被阅读16次

很多入门的教程书上是不会提到这个东西的,但是在网上看别人的代码时经常能够看到这种语句。

那么到底是什么叫解析语句呢?

最经典的例子:

l = [x for x in range(10)]

中括号中的语句就是解析语句。

官方语法:
[expression for value in iterable if condition]

其中expression 和 condition 都与value有关,而if 语句是可选的。

这个语句可以用for语句改写:

result = []
for value in iterable:
    if condition:
        result.append(expression)

举个简单的例子,我们的程序需要一个1~n的平方组成的列表,即[1, 4, 9, 16, 25, 36, 49, ······n*n]

如果用for循环来写,就是这样:

squares = []
for x in range(1, n+1):
    squares.append(x*x)

但是我们用解析语句:

squares = [x*x for x in range(1,n+1)]

就只需要一行,当然也可以加if语句,比如生成1~n奇数的平方:

squares = [x*x for x in range(1, n+1) if x % 2 == 1]

结果为[1, 9, 25, 49, ······]

是不是很方便。这个解析语句又叫做列表生成式,实验证明用这种方法俩初始化列表要比用append方法快很多

这种方法不仅可以用于列表,元组也可以这样生成,不过元组不可变。

(x*x for x in range(1, n+1) if x % 2 == 1)

{k: k*k for k in range(10)}

同样的这种语法用的较多的还有一个if-else语句:

一般我们都这么用:

if condition:
    return True
else:
    return False

像这种if-else语句下面的语句只有一个且只有值不同,就可以写成这样:

return True if condition else False

这样可以让代码变的简洁,更加美观优雅。

同样我们在赋值是也可以这么写:

max = a if a > b else b

这就像是C语言的语句:

max = a > b ? a : b;

这个语句叫条件表达式。
官方写法:

expr1 if condition else expr2

相当于:

if condition:
    max = expr1
else:
    max = expr2

至于打包和解包,举个大家都熟悉的例子就好了。

在c语言中,我们如果要交换两个标量a、b的值,那么我们就会写成这样:

tmp = a;
a = b;
b = tmp;

当然不止在C语言中,大部分语言都是这样写,你在python中这么写没有什么问题。

但是我们有更加简单的写法:

a, b = b, a

emmmm……,是不是超级方便。

哈哈哈。就这样了,我去洗澡了。

相关文章

  • python-解析语句、条件语句、打包和解包

    很多入门的教程书上是不会提到这个东西的,但是在网上看别人的代码时经常能够看到这种语句。 那么到底是什么叫解析语句呢...

  • Linux结构化语句-条件与循环

    Linux结构化语句 条件语句 if循环语句: for 循环和 while循环 条件语句 if if 条件语句的常...

  • 结构语句

    选择结构语句 选择语句分为if条件语句和switch条件语句 if条件语句 if条件语句分为三种语法格式,每一种格...

  • 流程控制语句

    流程控制语句分为条件语句和循环语句 条件语句(if、switch) - if语句 if(表达式){语句块代码}如表...

  • Swift - 控制流

    控制流语句,用于控制程序正在执行的流程。Swift中,控制流语句主要为条件语句和循环语句。 条件语句 if条件语句...

  • 初学python-条件语句

    Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代...

  • Kotlin基础(2)-->程序的逻辑控制

    程序的执行语句主要分为3中:顺序语句、条件语句和循环语句 一、条件语句 Kotlin中的条件语句主要有两种实现方式...

  • Java流程控制2

    条件语句 if条件语句,switch多分支语句 if条件语句总 if条件句中又分为:if条件语句,if…else,...

  • Javascript 基础:语句

    1.条件语句 if(条件){语句}if(条件){语句1}else{语句2}if(条件){语句1}else if(条...

  • 07-Go语言条件语句

    if条件语句 if条件语句三种格式 if条件语句结构特点 switch条件语句 语句格式 switch语句注意点

网友评论

    本文标题:python-解析语句、条件语句、打包和解包

    本文链接:https://www.haomeiwen.com/subject/umbpwqtx.html