• Python学习(三)--列表和元组


            在python中,最基本的数据结构是序列。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个索引是0,第二个则是2。序列中最后一个元素是-1,倒数第二个元素为-2。
            python包含6种内建的序列:列表、元组、字符串、Unicode字符串、buffer对象、xrange对象。典型的序列包括列表,字符串和元组。其中列表是可变的,元组和字符串是不可变的。
     
    序列通用操作

            所有的序列都可以进行某些特定的操作,比如索引、分片等等。
    1.索引
            x[n]:可以通过索引获取序列中的元素。左边位置编号从0开始;右边位置编号从-1开始。
            举例:
    >>> tmp = ‘hello'
    >>> tmp[0]
    ‘h'
    2.分片
            [索引1:索引2:步长]:分片操作访问一定范围内的元素。提供两个索引作为边界,第一个索引的元素包含在分片内,第二个则不包含。1)置空分片中的最后一个索引[3:],就能包含结尾元素。2)置空分片中的第一个索引[:3]就能包含开始元素。3)都置空,就能获取整个序列[:]4)分片的第三个参数就是步长,默认1,不能为0,负数表示从右开始提取。分片中最左边的索引比最右边的索引晚出现在序列中,就会返回空序列。
            举例:
    >>> num=[1,2,3,4,5,6,7,8]
    >>> num[1:3]
    [2, 3]
     
    >>> num[::2]
    [1, 3, 5, 7]
    3.相加
            +:将两种相同类型的序列连接。比如列表和列表相加是允许的,但是列表是字符串相加是不允许的。
            举例:
    >>> [1,2]+[2,3]
    [1, 2, 2, 3]
    >>> [1,2] + 'hh'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: can only concatenate list (not "str") to list
    4.乘法
            序列*num:新的序列,原来的序列被重复num次数。
            举例:
    >>> 3*[1,2]
    [1, 2, 1, 2, 1, 2]
    >>> 3*'abc'
    ‘abcabcabc'
    5.成员资格
            in运算符会检查一个对象是否为某个序列的成员,条件为真返回True,条件为假返回False。
            举例:
    >>> 'h' in 'hello'
    True
    6.长度
            len函数返回序列中所包含的元素的数量。
            举例:
    >>> len([1,2,3])
    3
     >>> len('hello')
     5
    7.最大元素
            max函数返回序列中最大的元素。
            举例:
    >>> max([33,32,90])
    90
    8.最小元素
            min函数返回序列中最小的元素。
            举例:
    >>> min([33,32,90])
    32
    9.创建列表
            list():根据序列创建列表。
            举例:
    >>> list('hello')
    ['h', 'e', 'l', 'l', 'o']
     
    列表

            创建列表用'[]'括起来。None是一个Python的内建值,表示什么也没有,可以用来初始化空列表[None,None]。列表可以使用所有适用于序列的标准操作,例如上面列出来的操作。但是列表也有一些特有的操作。
    列表操作
    1.元素赋值
            使用索引为某个特定的、位置明确的存在的元素赋值。
            举例:
    >>> m = [1,2,3]
    >>> m[2] = 99
    >>> m
    [1, 2, 99]
    2.删除元素
            del():删除列表中的元素。
            举例:
    >>> m = ['abc',1,45]
    >>> del(m[1])
    >>> m
    ['abc', 45]
    3.分片赋值
            x[n:m] = […]:可以一次为多个元素赋值;可以使用与原序列不等长的序列将分片替换;可以不替换原有元素的情况下插入新的元素;可以实现删除元素。
            举例:
    >>> name = [1,2,3,4]
    >>> name[1:] = [66,66,66]
    >>> name
    [1, 66, 66, 66]
    >>> name = [1,2]
    >>> name[1:] = [33,33,33,33]
    >>> name
    [1, 33, 33, 33, 33]
    >>> name = [1,2]
    >>> name[1:1] = [22,22]
    >>> name
    [1, 22, 22, 2]
    >>> name = [1,2,3,4,5,6]
    >>> name[1:4] = []
    >>> name
    [1, 5, 6]
     
    列表方法
            方法是一个与某些对象有密切联系的函数。调用:对象.方法(参数)。
    1.append
            用于在列表末尾追加新的对象。这个方法是直接修改原有列表。
            举例:
    >>> m = [1,2,3]
    >>> m.append([1,2])
    >>> m
    [1, 2, 3, [1, 2]]
    2.count
            统计某个元素在列表中出现的次数。
            举例:
    >>> [1,2,1,[1,2]].count(1)
    2
    3.extend
            在列表的末尾一次性追加另外一个序列的多个值。
            举例:
    >>> m = [1,2]
    >>> m.extend([3,4,5])
    >>> m
    [1, 2, 3, 4, 5]
    4.index
            从列表中找出某个值第一个匹配项的索引位置。当找不到时就会返回异常。
            举例:
    >>> [1,2,3,4,5,6,7].index(4)
    3
    5.insert
            object.insert(索引,元素):用于将对象插入列表中。但索引超过当前的范围,就会在最后一个位置插入。
            举例:
    >>> num = [1,2,3,4,5]
    >>> num.insert(2,'abc')
    >>> num
    [1, 2, 'abc', 3, 4, 5]
    6.pop
            object.pop(索引):移除列表中的一个元素(默认是最后一个),并且返回该元素的值。当索引不存在就会返回异常。
            举例:
    >>> num = [1,2,3,4,5,6,7]
    >>> num.pop()
    7
    >>> num
    [1, 2, 3, 4, 5, 6]
    >>> num.pop(0)
    1
    7.remove
            object.remove(元素):用于一处列表中某个值的第一个匹配项。找不到就会返回异常。
            举例:
    >>> num = [1,2,3,3,4,5]
    >>> num.remove(3)
    >>> num
    [1, 2, 3, 4, 5]
    8.reverse
            将列表中的元素反向存放。
            举例:
    >>> num = [1,2,3]
    >>> num.reverse()
    >>> num
    [3, 2, 1]
    9.sort
            object.sort():对列表进行排序,不返回值,是直接改变原有列表的方法。
            举例:
    >>> num = [1,6,3]
    >>> num.sort()
    >>> num
    [1, 3, 6]
    10.高级排序
            object.sort(fun()):使元素按照特定方式排序。object.sort(cmp),升序排序;object.sort(key = xx),为每个元素创建一个键,然后根据键来排序。比如根据字符长度,object.sort(key = len);object.sort(reverse=True/False),取值为True则反向排序。
     
    11.关于赋值的注意点
            x=[1,2,3],将x的副本赋值给y,需要这么操作,y = x[:]。而不是简单的将y=x。
    如果将y=x,那么y和x指向同一个列表,类似c语言里的指针,那么当修改y时(通过列表的方法/操作进行一些操作),就会同时修改x。除非将y重新指向另外一个列表(比如 y = [1,2]),会解除x和y之间的操作。
     
    元组

            元组就是不可变的序列。不可变指的是元素指向不能变。创建元组,用'()'括起来。(1,2,3)。
            创建一个值的元组,(1,),必须在第一个元素后面加一个',’。因为()既可以表示tuple也表示数学公式的小括号,这样就产生了歧义,无法确定(1)表示的是什么。
            元组的基本操作和其它序列一样。
            1.tuple
            以一个序列作为参数将其转化为元组。如果参数就是元组,那么该参数就会原样返回。
            举例:
    >>> tuple([1,2,3])
    (1, 2, 3)
    >>> tuple('abcd')
    ('a', 'b', 'c', 'd')
    >>> tuple((1,2,3))
    (1, 2, 3)
  • 相关阅读:
    Python--线程
    Python--paramiko
    Java生鲜电商平台-取消订单系统设计与数据分析(小程序/APP)
    基于Spring Boot快速实现发送邮件功能
    SpringBoot集成ActiveMQ实例详解
    requests模块【接口自动化】
    java多线程_Java中的引用类型
    Java多线程_缓存对齐
    Excel规划求解求哪几个数字之和等于一个固定值
    Javaday24(UDP,URL,常用工具--XML)
  • 原文地址:https://www.cnblogs.com/mujiujiu/p/7810392.html
Copyright © 2020-2023  润新知