zoukankan      html  css  js  c++  java
  • python列表

    Python基础数据类型之列表

    一、什么是列表

          列表是Python最基本的数据类型之一,类似于C语言的数组,将一些数据打包存放在一个容器中,但是Python的数组要强大的多,它几乎可以存放所有类型的数据。它就类似于一个工厂的仓库,里面按顺序存放着各式各样的数据类型。

    二、如何创建一个列表

    方法1:用一对中括号将一堆数据包裹起来,各个数据之间用逗号隔开就形成了一个列表

    >>> a=[1,'A','吴依杰','Hello python']
    >>> a
    [1, 'A', '吴依杰', 'Hello python']

    方法2:用工厂函数list(iterable)将一个可迭代的对象生成一个列表,当传入的参数不是可迭代对象时,就会引发异常

    >>> b=list('Hello')
    >>> b
    ['H', 'e', 'l', 'l', 'o']
    >>> c=list(1)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'int' object is not iterable
    >>>

    方法3:用列表生成式生成列表

    >>> d = [x*2 for x in range(10)]
    >>> d
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    >>>

    三、列表的方法

    1.向列表末尾追加一个元素(append)

    >>> list1 = [1,2,3,4]
    >>> list1.append(5)
    >>> list1
    [1, 2, 3, 4, 5]
    >>>

    2.向列表末尾添加多个元素,接收的参数为一个列表,其实相当于用一个列表去扩展另一个列表(extend)

    >>> list1 = [1,2,3,4]
    >>> list1.extend([5,6])
    >>> list1
    [1, 2, 3, 4, 5, 6]
    >>>

    3.根据索引位置向列表中插入元素,Python的索引值是从0开始算的(insert)

    >>> list1 = [1,2,3,4]
    >>> list1.insert(0,0)
    >>> list1
    [0, 1, 2, 3, 4]
    >>>

    4.根据元素名删除一个列表中一个已知的元素(remove)

    >>> list1 = [1,2,3,4]
    >>> list1.remove(2)
    >>> list1
    [1, 3, 4]
    >>>

    5.以弹出式移除列表中的元素,当不指定要弹出元素的索引值时,默认弹出最后一项,当索引值给定时,弹出索引值对应的元素(pop)

    >>> list1 = [1,2,3,4]
    >>> list1.pop()
    4
    >>> list1
    [1, 2, 3]
    >>> list1.pop(1)
    2
    >>> list1
    [1, 3]
    >>>

    6.删除列表元素还有一个del语句,它不是list的类方法,而是一条Python语句(del)

    >>> list1 = [1,2,3,4]
    >>> del list1[1]
    >>> list1
    [1, 3, 4]
    >>> del list1
    >>> list1
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'list1' is not defined
    >>>

    7.根据给定的列表中的元素返回其在列表中的索引值(index)

    >>> list1 = ['A','B','C','D']
    >>> list1.index('A')
    0
    >>> list1.index('C')
    2
    >>>

    8.根据给定的元素返回其在列表中的个数(count)

    >>> list1 = [1,1,2,3,3,3]
    >>> list1.count(1)
    2
    >>> list1.count(2)
    1
    >>> list1.count(3)
    3
    >>> list1.count('A')
    0
    >>>

    9.浅拷贝一个列表(copy)

    >>> list1 = [1,2,3]
    >>> list2 = list1.copy()
    >>> list2
    [1, 2, 3]
    >>>

    10.反转列表(reverse)

    >>> list1 = [1,2,3,4]
    >>> list1.reverse()
    >>> list1
    [4, 3, 2, 1]
    >>>

    11.当列表元素全部为int型时,返回一个正排序后的列表,当sort方法的关键字参数reverse=True时,返回一个反排序后的列表(sort)

    >>> list1 = [1,2,3,4]
    >>> list1.reverse()
    >>> list1
    [4, 3, 2, 1]
    >>> list1 = [1,8,4,3]
    >>> list1.sort()
    >>> list1
    [1, 3, 4, 8]
    >>> list1 = [1,8,4,3]
    >>> list1.sort(reverse=True)
    >>> list1
    [8, 4, 3, 1]
    >>>

    四、列表的其他操作

    1.列表的切片

    列表的切片操作是经常要使用的操作,所谓列表切片即根据列表的索引值的对应关系对列表进行截取操作,一般分为下面几种做法

    格式:list1[n:m:step]

    n:起始索引位置(当n省略不写时,表示从列表开头开始索引)

    m:结束索引位置(当m省略不写时,表示索引值从n开始直到结束)

    step:步长(即间隔几个数据取值,step不写时默认值为1)

    >>> list1 = [1,2,3,4]
    >>> list1[:]        #m,n都不写,拷贝整个列表
    [1, 2, 3, 4]
    >>> list1[1:3]    #结果为索引值为1到3对应的元素,不包括最后一个
    [2, 3]
    >>> list1[1:]      #省略m的情况,返回从n到最后的所有值
    [2, 3, 4]
    >>> list1[:3]      #省略n的情况,返回开始到m的所有值,不包括m
    [1, 2, 3]
    >>> list1[1:4:2] #n,m都有值,步长为2的情况
    [2, 4]
    >>> list1[:4:2]   #省略n,步长为2的情况
    [1, 3]
    >>> list1[1::2]   #省略m,步长为2的情况
    [2, 4]
    >>> list1[::2]     #省略n和m,步长为2的情况
    [1, 3]
    >>>
    View Code

    2.列表的运算操作

    列表相加

    列表相加即返回两个列表拼接的结果

    >>> list1 = [1,2]
    >>> list2 = [3,4]
    >>> list3 = list1+list2
    >>> list3
    [1, 2, 3, 4]
    >>>

    列表相乘

    列表相乘即返回N个列表拼接后的结果

    >>> list1 = [1,2]
    >>> list2 = list1*5
    >>> list2
    [1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
    >>>

    列表比较大小

    列表比较大小的规则是:依次比较相同索引位置的元素的值(当为字符串时,比较其ASCII码大小),当有某一次比较出结果时,即返回一个Bool类型的值

    >>> list1 = [1,2]
    >>> list2 = [3,4]
    >>> list2>list1
    True
    >>>
  • 相关阅读:
    jsp三种注释方法
    MyEclipse 2015优化技巧
    查看是否安装jdk及路径
    hibernate中save()、get()、load()、update()、saveorupdate()、merge()等方法
    MyEclipse更改项目名web发布名字不改问题
    try-catch-finally try中有rerun 是否执行finally
    使用HTML制作网页
    rs(0)与rs("字段名")的区别
    金蝶K3 wise 插件二次开发与配置
    初识触发器(2)
  • 原文地址:https://www.cnblogs.com/Keys819/p/9281397.html
Copyright © 2011-2022 走看看