zoukankan      html  css  js  c++  java
  • 序列之列表

    列表

    用于存储任意数目、任意类型的数据集合 。

    列表是内置可变序列,是包含多个元素的有序连续的内存空间。列表定义的标准语法格式:

    a = [10,20,30,40] 其中,10,20,30,40 这些称为:列表 a 的元素。

    列表中的元素可以各不相同,可以是任意类型。比如: a = [10,20,'abc',True] 

    列表的创建 

    1.[]创建

     a = [1,50,'大象','string']

     a = [] #创建一个空的列表对象

    2.list()创建 

     a = list() #创建一个空的列表对象

     a = list(range(10)). -->[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

     a = list("daxiang,sxt")  -->['d', 'a', 'x', 'i', 'a', 'n', 'g', ',', 's','x', 't'] 

    range()创建整数列表

    range()可以帮助我们非常方便的创建整数列表,这在开发中及其有用。语法格式为: range([start,] end [,step])

    start 参数:可选,表示起始数字。默认是 0
    end 参数:必选,表示结尾数字。
    step 参数:可选,表示步长,默认为 1
    python3 中 range()返回的是一个 range 对象,而不是列表。我们需要通过 list()方法将其 转换成列表对象。

    列表的增加操作

    1.append()方法:

      原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用。 

      a=[11,22,33]

      a.append(44)

      print(a)  -->[11,22,33,44]

    2.extend()方法 :

      将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。 

      a = [11,22,33]

      b = [44,55,66]

      a.extend(b)  -->[11,22,33,44,55,66]

    3.insert()方法:

      使用 insert()方法可以将指定的元素插入到列表对象的任意制定位置。这样会让插入位置后 面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。 

      a = [10,20,30]

      a.insert(2,100)  -->[10,20,100,30] 

    4.乘法扩展

      b = ['da',100]*3   -->['da',100,'da',100,'da',100] 

    列表的删除操作

    1.del 删除 

     删除列表指定位置的元素。

     a = [100,200,888,300,400]
    del a[1]   -->[100,888,300,400]
     
    2.pop()方法 
     pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。 
    1 a = [100,200,300,333,444]
    2 print(a.pop())
    3 print(a)
    4 print(a.pop(1))
    5 print(a)

    运行结果:

    444
    [100, 200, 300, 333]
    200
    [100, 300, 333]

    3.remove()方法 

    删除首次出现的指定元素,若不存在该元素抛出异常 

    1 a = [100,200,300,333,200,444]
    2 a.remove(200)
    3 print(a)
    4 a.remove(900)
    5 print(a)

    运行结果:

    Traceback (most recent call last):
    File "/Users/gray/PycharmProjects/test/test001.py", line 29, in <module>
    a.remove(900)
    ValueError: list.remove(x): x not in list
    [100, 300, 333, 200, 444]

    列表的修改

     a = [1,2,3,4,5]

     a[0] = 9 -->a = [9,2,3,4,5]

    列表的查询


    1.通过索引直接访问元素 

     我们可以通过索引直接访问元素。索引的区间在[0, 列表长度-1]这个范围。超过这个范围则 会抛出异常。

    1 a = [100,200,300,333,200,444]
    2 print(a[3])

    运行结果:
    333

    2.index()获得指定元素在列表中首次出现的索引

     index()可以获取指定元素首次出现的索引位置。语法是:index(value,[start,[end]])。其中, start 和 end 指定了搜索的范围。

    1 a = [100,200,300,333,200,444]
    2 print(a.index(200))
    3 print(a.index(200,2))  #从索引位置2开始往后搜索的第一个200
    4 print(a.index(200,2,5))  #从索引位置 2 到 5 这个区间,第一次出现 200 元素的位置

    运行结果:

    1
    4
    4

    3.count()获得指定元素在列表中出现的次数 

    1 a = [100,200,300,333,200,444]
    2 print(a.count(200))

    运行结果:2

    4.len()返回列表长度 

    1 a = [100,200,300,333,200,444]
    2 print(len(a))

    运行结果:6

    5.切片操作

    我们在前面学习字符串时,学习过字符串的切片操作,对于列表的切片操作和字符串类似。 切片是 Python 序列及其重要的操作,适用于列表、元组、字符串等等。切片的格式如下:

     切片 slice 操作可以让我们快速提取子列表或修改。标准格式为: [起始偏移量 start:终止偏移量 end[:步长 step]] 

    操作和说明

    示例

    结果

    [:] 提取整个列表

    [10,20,30][:]

    [10,20,30]

    [start:]从 start 索引开始到 结尾

    [10,20,30][1:]

    [20,30]

    [:end]从头开始知道 end-1

    [10,20,30][:2]

    [10,20]

    [start:end]从 start 到 end-1

    [10,20,30,40][1:3]

    [20,30]

    [start:end:step] 从 start 提 取到 end-1,步长是 step

    [10,20,30,40,50,60,70][1:6: 2]

    [20, 40, 60]

    6.列表的遍历

    for obj in listObj: print(obj) 

     a = [100,200,300,333,200,444]
     for b in a:
         print(b)
    
    运行结果:
    100
    200
    300
    333
    200
    444

    7.列表的排序

    sort() 默认是升序,加入reverse=True为降序

    1 a=[1,2,3,11,21,10,5]
    2 a.sort()
    3 print(a)
    4 a.sort(reverse=True)
    5 print(a)

    运行结果:

    [1, 2, 3, 5, 10, 11, 21]
    [21, 11, 10, 5, 3, 2, 1]

  • 相关阅读:
    禁用网络连接后无法访问本机数据库的问题
    DevExpress使用笔记
    DEV控件 皮肤问题
    SQLServer2008导入Excel遇到的问题
    InnoSetup使用笔记
    SQLServer清空数据库中所有表的数据
    MS SQL Server2000转换成MySQL
    由MySQL登录不了引发的一些问题
    onerror事件
    DIV+CSS一些小小的技巧
  • 原文地址:https://www.cnblogs.com/elephant-study/p/11549313.html
Copyright © 2011-2022 走看看