第11章

来源:互联网 发布:linux wps字体库下载 编辑:程序博客网 时间:2024/05/21 23:33

第11章

  • 第11章
    • 序列赋值
    • 扩展序列解包
      • 边界情况
      • 应用于for循环

序列赋值

>>> nudge = 1>>> wink = 2>>> a,b = nudge,wink>>> a,b(1, 2)
>>> [a,b,c]=(1,2,3)>>> a,c(1, 3)

虽然可以在= 符号两侧混合相匹配的序列类型,右边元素的数目还是要跟左边的变量的数目相同。

>>> a,b,c=[235,'loi','wang']>>> d = a,b,c>>> d[:2],d[2:]((235, 'loi'), ('wang',))
>>> ((a,b),c)=('sp','am')>>> a,b,c('s', 'p', 'am')------------------>>> red,green,blue=range(3)>>> red,green,blue(0, 1, 2)
l = [1,2,3,4]while l:    front,l = l[0],l[1:]    print(front,l)-------------------1 [2, 3, 4]2 [3, 4]3 [4]4 []

扩展序列解包

>>> seq=[1,2,3,4]     #对于任何序列类型都一样>>> a,*b = seq>>> a,b(1, [2, 3, 4])>>> *a,b = seq>>> a,b([1, 2, 3], 4)>>> a,*b,c = seq>>> a,b,c(1, [2, 3], 4)

一个序列解包赋值总是返回多个匹配项的一个列表,而分片把相同类型的一个序列作为分片的对象返回。

#扩展序列解包赋值>>> a,*b = 'spam'>>> a,b('s', ['p', 'a', 'm'])>>> a,*b,c = 'spam'>>> a,b,c('s', ['p', 'a'], 'm')     #看这行--------------------------#切片赋值>>> s = 'spam'>>> s[0],s[1:]('s', 'pam')>>> s[0],s[1:3],s[3]('s', 'pa', 'm')         #看这行

边界情况

带星号的名称可能匹配单个项

>>> seq = [1,2,3,4]>>> a,b,c,*d = seq>>> a,b,c,d(1, 2, 3, [4])>>> print(a,b,c,d)     #为什么直接返回值是元组,打印是整形1 2 3 [4]

应用于for循环

等学for循环迭代工具看p301

原创粉丝点击