• Python基础教程——2列表和元组


    1  内建的序列:列表,元祖,字符串,Unicode字符串,buffer对象和xrange对象

        列表vs元组:

        列表可以改变,元组不可以。

        使用元组的理由:通常是技术性的。与Python内部的运作方式有关。这也是内建函数可能返回元组的原因

        必须使用元组的情况:使用元组作为字典的键,在这种情况下,因为健不可修改,所以不能使用列表

    2  容器container 基本上包含了其他对象的任意对象。包括:

        序列(列表与元组)每个元素都有自己的编号

        映射(字典)每个元素都有自己的名字

        此外,还有集合

    <恩,插播,2012.8.5 21:26 林丹赢了。excellent!>

    3  通用序列操作

       3.1 索引

       前面从0开始,后面从-1开始数

       3.2分片

       第一个空从头开始,第二个空到结尾

       第三个数表示步长,即间隔

       3.3 序列相加

       要求必须是相同类型的序列才能进行连接操作

       3.4乘法

       None是一个内建值,确切的含义是“这里什么也没有”,用于初始化

       3.5 成员资格 in

       3.6 长度len,最大值max,最小值min

    4  列表

       4.1 list 将序列分解,与之相对的是‘’.jion(somelist)

       4.2del语句删除元素  del x[2]

       4.3分片赋值实际上是一种替换

     

    5 列表方法

    5.1append 在列表尾部追加新的对象

    5.2count 统计某个元素在列表中出现的次数

    5.3extend vs 连接

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

    而a = a+b 的操作要比extend的效率低

    上面的也可以用分片赋值实现

    >>> a = [1,2,3]
    >>> b
    [4, 5, 6]
    >>> a[len(a):] = b
    >>> a
    [1, 2, 3, 4, 5, 6]

    但是可读性比extend低

    5.4index返回某个值第一个匹配的索引位置

    5.5insert 插入列表

    5.6pop默认最后一个,pop(0)第一个 ——唯一一个可以修改列表的同时返回元素值(None除外)的列表方法

    对于:LIFO(栈) 用append(x)入栈,用pop()出栈

    FIFO(队列) 用insert(0,x)入队列,用pop()出队列 【队首是序列值大的】;或者:用append(x)入队列,用pop(0)出队列【队首是序列值小的】

    5.7remove 移除列表中某个值的第一个匹配项

    5.8reverse 将元素反向存放

    >>> x = [1,2,3]
    >>> reversed(x)
    <listreverseiterator object at 0x01733A10>
    >>> list(reversed(x))
    [3, 2, 1]

    5.9sort 原位置排序

    要得到一个排好序的副本和保持原序列不变

    方法一:

    >>> x = [3,2,4]
    >>> y = x[:] # y = x 是不对的,因为这样的话,x和y将指向同一个列表
    >>> y.sort()
    >>> x
    [3, 2, 4]
    >>> y
    [2, 3, 4]

    方法二:

    >>> x = [3,2,4]
    >>> y = sorted(x)
    >>> x
    [3, 2, 4]
    >>> y
    [2, 3, 4]
    >>>

    6高级排序

    参数cmp

    >>> cmp(1,4)
    -1
    >>> cmp(2,1)
    1
    >>> cmp(3,3)
    0
    >>> a = [4,2,6,4]
    >>> a.sort(cmp)
    >>> a
    [2, 4, 4, 6]

    参数key


    >>> 
    >>> b = ['sdf','sdd','sssss','d','er']
    >>> b.sort(key = len)
    >>> b
    ['d', 'er', 'sdf', 'sdd', 'sssss']
    >>>

    参数reverse


    >>> x = [3,65,1,6,566,23,666]
    >>> x.sort(reverse = True)
    >>> x
    [666, 566, 65, 23, 6, 3, 1]
    >>> x.sort(reverse = False)
    >>> x
    [1, 3, 6, 23, 65, 566, 666]

     7  list将序列转换成列表,tuple将序列转换为元组
    >>> list([1,2,3])
    [1, 2, 3]
    >>> list('abc')
    ['a', 'b', 'c']
    >>> list((2,3,4))
    [2, 3, 4]
    >>> tuple([1,2,3])
    (1, 2, 3)
    >>> tuple('abc')
    ('a', 'b', 'c')
    >>> tuple((2,3,4))
    (2, 3, 4)

      

  • 相关阅读:
    linux下C语言实现写日志 linux下C语言实现写日志功能(转)
    打开支付宝扫一扫,每天都可以领早餐钱,长期活动真实有效!
    谈谈程序员 35 岁危机,太真实了……
    ELK 搭建 TB 级海量日志监控系统,这个太强了!
    面试官:如果保证数据库和缓存数据的一致性?面试必问……
    Spring Boot 并行任务,这才是优雅的实现方式!
    公司新入职一个中级 Java 开发,4 行代码写出了 3 个异常,我真的服了。。
    IDEA 一键生成 Maven 依赖关系图,太强大了。。
    自从用了灰度发布,睡觉真香!
    牛逼!“京东热” 框架 JDhotkey 开源了...单机 QPS 可达 37 万!!
  • 原文地址:https://www.cnblogs.com/miki/p/3308584.html
Copyright © 2020-2023  润新知