码迷,mamicode.com
首页 > 编程语言 > 详细

Python入门2(赋值)

时间:2017-10-24 13:11:15      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:end   c语言   赋值   相同   优点   image   xtend   必须   注意   

【一:*,-1的作用】

给大家两个例子:

1 a,b,c,d=spam
2 print(a)
3 print(b)
4 print(c)
5 print(d)
6 a,*b=spam
7 print(a)
8 print(b)

技术分享

上面这个例子是*号作用的最就简单的例子,要区别于C语言中的指针。第六行语句,a赋的是s,b赋的是pam

1 seq=computer
2 *a,b=seq
3 print(a)
4 print(b)
5 c,d=seq[:-1],seq[-1]
6 print(a)
7 print(b)

技术分享

上面是-1作用的例子,大家可以自己体会

注意:如果有多个带星号的名称,或者如果值少了而没有带星号的名称,以及如果带星号的名称自身没有编写到一个列表中,都将会引发错误

【二:序列赋值】

1 a=1
2 b=2
3 a,b=b,a
4 print(a)
5 print(b)

技术分享

在这里,右侧的原组会自动记住先前的变量值

【三:for循环】

1 L=[1,2,3,4]
2 M=[1,2,3,4]
3 while L:
4     front,L=L[0],L[1:]
5     print(front,L)
6     
7 while M:
8     front,*M=M
9     print(front,M)

技术分享

由例子可以看出,上下两段代码的结果是一样的,这就是*的作用

1 for all in [(1,2,3,4),(5,6,7,8)]:
2     a,b,c=all[0],all[1:3],all[3]
3     print(a,b,c)

 

技术分享

【四:append】

1 a=b=[]
2 b.append(42)
3 print(a,b)
4 
5 a=[]
6 b=[]
7 b.append(42)
8 print(a,b)

技术分享

第一段代码,因为a和b引用相同的对象,通过b在原处附加值上去,而我们通过a也会看到相同的效果。第二段代码则有不同的效果。只有append有这个功能

【五:强赋值语句】

强赋值语句类似与C语言中的x+=x,y+=y,但要注意的是Python中没有x++这样的运算符

1 s=spam
2 s+=SPAM
3 print(s)

技术分享

当强赋值语句用于字符串时,增强形式会改为执行合并运算

强赋值语句的优点:

1、左侧只需计算一次,在x+=x中,x可以是复杂的对象表达式。在增强形式中,则只需计算一次。然而,在完整形式x=x+y中,x出现两次,必须执行两次。因此,增强赋值语句通常执行更快。

2.当我们使用增强赋值语句时,Python会自动调用较快的方法

1 a=[1,2,3]
2 b=[1,2,3]
3 a.extend([4,5])
4 b=b+[4,5]
5 print(a)
6 print(b)

技术分享

在上面这个例子中,上下两段代码的结果是一样的,但是.extend方法更快一点。然后我们再来看下面这个例子

1 a=[1,2,3]
2 a+=[4,5]
3 print(a)

这个例子调用的就是更快速的.extend方法,虽然表面上看不出,但Python内部就是调用更高效的方法的

注意:

1 L=[1,2]
2 M=L
3 L=L+[3,4]
4 print(M,L)
5 
6 L=[1,2]
7 M=L
8 L+=[3,4]
9 print(M,L)

技术分享

以上两个例子的差异大家自己体会一下

+=能对列表做原处修改

1 M=L=[1,2]
2 L.append(3)
3 print(M,L)
4 
5 M=L=[1,2]
6 L=L+[3]
7 print(M,L)

技术分享

再次感受一下append的作用

Python入门2(赋值)

标签:end   c语言   赋值   相同   优点   image   xtend   必须   注意   

原文地址:http://www.cnblogs.com/yuanninesuns/p/7722648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!