• Python中列表操作进阶及元组


    列表高级操作

    一、遍历列表

    >>> ls=['a','d','it']
    >>> for val in ls:
    ...     print (val)
    ... 
    a
    d
    it

    for后面是个冒号,for循环体行首是四个空格,对于python中所有的缩进,都使用四个空格,如果使用编辑器,为了方便,大家可能会使用Tab制表符代替空格,但要设置Tab制表符用四个空格替换,一般编辑器都会有这个功能。

    二、创建数值列表

    1、使用range方法几乎可以创建任何形式的数值列表,一个简单的示例如下:

    >>> for val in range(1,5):
    ...     print (val)
    ... 
    1
    2
    3
    4

    range方法包前不包后,这和很多编程语言的方法类似。

    2、虽然上述示例,直接循环可获取到range分配的每个列表中的元素值,但不能将range(1,5)直接赋值给一个变量,需要使用list方法进行转换

    直接将range(1,5)赋值给一个变量,输出的结果并非我们想要的列表

    >>> myls=range(1,5)
    >>> myls
    range(1, 5)

    使用lsit转换成列表

    >>> myls=list(range(1,5))
    >>> myls
    [1, 2, 3, 4]

    3、使用range也可以指定步长,如生成一个等差为3的等差列表

    >>> eqdiffls=list(range(1,50,3))
    >>> eqdiffls
    [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49]

    三、列表简单统计计算,如获取最大值,最小值,求和等

    >>> countls=list(range(1,10))
    >>> countls
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> min(countls)
    1
    >>> max(countls)
    9
    >>> sum(countls)
    45

    四、列表解析

    首先明确一下,python中计算平方的格式为val**2,如果要计算2的3次幂可以写成2**3

    >>> 4**2
    16
    >>> 2**3
    8

    如果要生成一组数的平方值的集合,我们可能需要这么做,如1到4的平方值的列表

    >>> squarels=[]
    >>> for val in range(1,5):
    ...     squarels.append(val**2)
    ... 
    >>> squarels
    [1, 4, 9, 16]

    这种方式生成的列表需要四行,有一种方式通过一行代码就可以生成上述所需的列表,这种方式就是列表解析。

    >>> del squarels
    >>> squarels=[val**2 for val in range(1,5)]
    >>> squarels
    [1, 4, 9, 16]

    五、列表切片

    格式为:list[startIndex:endIndex],同样属于包前不包后操作,切片生成了一个新的列表,但不会对之前的列表元素有任何影响

    >>> squarels
    [1, 4, 9, 16]
    >>> squarels[1:3]
    [4, 9]

    从某个索引位置截取到列表结束位置

    >>> squarels[2:]
    [9, 16]

    从开始位置截取到某个位置

    >>> squarels[:2]
    [1, 4]

    如果startIndex和endIndex都不输入,则相当于复制了一个列表

    >>> squarels[:]
    [1, 4, 9, 16]

    列表复制也可使用copy方法,代码更易阅读

    >>> squarels.copy()
    [1, 4, 9, 16]

    遍历切片,和遍历列表方法一样

    >>> for val in squarels[1:3]:
    ...     print (val)
    ... 
    4
    9

    元组

    元组比较简单,与列表的区别是,初始化时使用小括号(),列表初始化使用中括号[];元组中的元素不能修改,列表中的元素允许修改

    一、元组的初始化

    元组使用小括号()进行初始化

    >>> tup=()
    >>> tup=(1,2,3)

    二、遍历,与列表一致

    >>> for val in tup:
    ...     print (val)
    ... 
    1
    2
    3

    三、不能修改元组中变量,修改则报错

    >>> tup[1]=1
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment

    四。虽然元组中元素不允许修改,但元组本身允许修改

    >>> tup=(12)
    >>> tup=(12,3)
    >>> 
  • 相关阅读:
    maven 父子模块保持相同
    Maven deploy时排除指定的某个module
    源码,反码,补码
    Java日志之Slf4j,Log4J,logback原理总结
    Git Bash设置代理
    分享2个分布式锁
    二叉树的遍历记忆方法
    MySQL百万级数据分页查询及优化
    eclipse无法访问sun.misc.Unsafe类的解决办法
    Spring学习日志之纯Java配置的MVC框架搭建
  • 原文地址:https://www.cnblogs.com/qq931399960/p/11100950.html
Copyright © 2020-2023  润新知