zoukankan      html  css  js  c++  java
  • 分片赋值和嵌套列表

    1、分片赋值

     1 #分片赋值是列表一个强大的特性。示例如下:
     2 >>> list('女排夺冠了')
     3 ['', '', '', '', '']
     4 >>> boil=list('女排夺冠了')
     5 >>> boil
     6 ['', '', '', '', '']
     7 >>> show=list('hi,boy')
     8 >>> show
     9 ['h', 'i', ',', 'b', 'o', 'y']
    10 >>> show[3:]=list('man')
    11 >>> show
    12 ['h', 'i', ',', 'm', 'a', 'n']
    13 #由上述示例可以看出,可以通过分片赋值直接对列表进行变更。示例中我们通过分片操作变更了编号3之后位置的元素,即将boy替换了man了。
    14 #上述示例中引入了一个新函数--list()函数。list()函数可以直接将字符串转换为列表。该函数的一个功能就是根据字符串创建列表,有时这样操作会很方便。list()函数不仅适合于字符串,所有类型的序列它都适用。
    15 #再来看下面的例子:
    16 >>> greeting=list('hi')
    17 >>> greeting
    18 ['h', 'i']
    19 >>> greeting[1:]=list('ello')
    20 >>> greeting
    21 ['h', 'e', 'l', 'l', 'o']
    22 #我们分析一下,前面给greeting赋的值是['h','i'],后面通过分片赋值操作将编号1之后的元素变更了,即将编号1位置的元素替换为e了,但是编号2之后没有元素,怎么能操作成功呢?并且一直操作到了编号4的位置?
    23 #这就是分片赋值另一个强大的功能,可以使用与原序列不等长的序列将分片替换。
    24 #再如示例:
    25 >>> filed=list('ae')
    26 >>> filed
    27 ['a', 'e']
    28 >>> filed[1:1]=list('bcd')
    29 >>> filed
    30 ['a', 'b', 'c', 'd', 'e']
    31 >>> boil=list('女排夺冠了')
    32 >>> boil
    33 ['', '', '', '', '']
    34 >>> boil[2:2]=list('2016年奥运会')
    35 >>> boil
    36 ['', '', '2', '0', '1', '6', '', '', '', '', '', '', '']
    37 #从上面的示例可以看出,可以在不替换任何原有元素的情况下在任意位置插入新元素。
    38 #当然,上面的示例程序只是一个“替换”了一个空分片,实际操作是插入一个序列。
    39 #通过该示例是否想起前面的append()方法,不过分片赋值比append()方法强大多了。
    40 
    41 #看到这里,是否同时想起了前面删除元素的操作,分片赋值是否支持类似删除的功能呢?
    42 >>> field=list('abcde')
    43 >>> field
    44 ['a', 'b', 'c', 'd', 'e']
    45 >>> field[1:4]=[]
    46 >>> field
    47 ['a', 'e']
    48 >>> boil=list('女排2017年奥运会夺冠了')
    49 >>> boil[2:10]=[]
    50 >>> boil
    51 ['', '', '', '', '']
    52 >>> field=list('abcde')
    53 >>> field
    54 ['a', 'b', 'c', 'd', 'e']
    55 >>> del field[1:4]
    56 >>> field
    57 ['a', 'e']
    58 #从上面的示例可以看到,使用了前面插入操作的逆操作证实了我们的猜想。删除和插入一样,可以对一个序列中任意位置的元素进行删除。
    59 #所以通过分片赋值删除元素也是可行的,并且分片赋值删除的功能和del删除的操作结果是一样的。

    2、嵌套列表

     1 >>> xiaotao=['a','b','c']
     2 >>> xiaotao
     3 ['a', 'b', 'c']
     4 >>> numbers=[1,2,3]
     5 >>> numbers
     6 [1, 2, 3]
     7 >>> min=[xiaotao,numbers]
     8 >>> min
     9 [['a', 'b', 'c'], [1, 2, 3]]
    10 >>> min[0]
    11 ['a', 'b', 'c']
    12 >>> min[2]
    13 Traceback (most recent call last):
    14   File "<pyshell#207>", line 1, in <module>
    15     min[2]
    16 IndexError: list index out of range
    17 >>> min[1]
    18 [1, 2, 3]
    19 #由上面的操作结果得知,在列表中可以嵌套列表,嵌套的列表取出后还是列表。
  • 相关阅读:
    h5实现 微信的授权登录
    js判断浏览器的环境(pc端,移动端,还是微信浏览器)
    动态判断时间插件显示到年月日时分秒
    H5发起微信支付
    Vue项目结合vux使用
    Swift学习笔记一:常量和变量
    iOS开发之解决系统数字键盘无文字时delete键无法监听的技巧
    Swift3.0之获取设备识别号deviceNo和保存账户AccountId
    Swift3.0之自定义debug阶段控制台打印
    Xcode之command+/快捷键添加注释不起作用
  • 原文地址:https://www.cnblogs.com/DLHe/p/7685280.html
Copyright © 2011-2022 走看看