zoukankan      html  css  js  c++  java
  • Python数据结构之列表类型(list)

    数据结构之列表类型(list)

    • 列表说明

    • 索引和切片

    • 增加元素到列表

    • 删除列表元素

    • 更改列表元素

    • 查看列表元素

    • 列表脚本操作符

    • 列表截取与拼接

    • 嵌套列表

    • 列表内置函数

    一、列表说明

      序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

      列表是一个可变的数据类型

      Python有6个序列的内置类型,但最常见的是列表和元组。

      序列都可以进行的操作包括索引,切片,加,乘,检查成员。

      Python已经内置确定序列的长度以及确定最大和最小的元素的方法

      列表的数据项不需要具有相同的类型

      列表由 [ ] 来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象;

      创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

    >>> li = ["zjk",123,"python"]
    >>> li2 = [1,2,3,4,5]
    >>> li3 = ["a","b","c"]

    二、索引和切片

      列表和字符串一样. 也有索引和切片. 只不过切出来的内容是列表;

      索引的下标从0开始;

      切片的表达形式:[起始位置:结束位置:步长]

    二、增加元素到列表

      向列表中添加元素有三种基本方法:

      append()、insert()、extend()

      1.append(obj),表示向列表的末尾追加一个元素obj,这个obj被当做一个整体添加到列表的末尾处;

      例如:

    >>> li = [1,2,3,4]
    >>> li.append("abc")
    >>> print(li)
    [1, 2, 3, 4, 'abc']

      2.insert(index,obj),表示在索引index位置添加一个obj元素,obj元素是一个整体;

      例如:

    >>> li.insert(1,["a","b","c"])
    >>> print(li)
    [1, ['a', 'b', 'c'], 2, 3, 4]

      3.extend( iterable),表示向列表的末尾处添加一个可迭代对象,iterable被叠加到列表的末尾处;

      例如:

    >>> li = [1,2,3,4]
    >>> li.extend(["a","b","c"])
    >>> print(li)
    [1, 2, 3, 4, 'a', 'b', 'c']

    三、删除列表元素

      删除列表中的元素有四种基本方法:

      pop()、remove()、del 切片、clear()

      1.pop(index),表示通过索引位置剪切走一个元素,

      例子:

    >>> li = [1,2,3,4]
    >>> a = li.pop(1)
    >>> print(li,a)
    [1, 3, 4] 2

      2.remove(),搜索元素然后直接在列表中删除;

      例子:

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

      

      3.del 切片,通过索引或切片的方式进行删除;

      例子:

    >>> li = [1,2,3,4]
    >>> del li[0]
    >>> print(li)
    [2, 3, 4]
    >>> del li[0:2]
    >>> print(li)
    [4]

      4.clear(),清空整个列表;

      例子:

    >>> li = [1,2,3,4]
    >>> li.clear()
    >>> print(li)
    []

    四、更改列表元素

      1.索引修改;

      例子:

    >>> li = [1,2,3,4]
    >>> li[0] = "a"
    >>> print(li)
    ['a', 2, 3, 4]

      2.切片修改:

      这边需要注意的是,如果切片的步长为1,则不用关心赋值的参数问题,如果步长值不为1则是几就要添加几个参数;

      例子:

    ----------------步长值为1,元素可以随意添加---------------------------
    >>> li = [1,2,3,4] >>> li[1:3] = "abcdefg" >>> print(li) [1, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 4]

    --------------步长值为2,元素必须是两个元素----------------------------
    >>> li = [1,2,3,4] >>> li[0::2] = "abc","kkk" >>> print(li) ['abc', 2, 'kkk', 4]

    五、查看列表元素

      查询列表中的元素可以使用索引方式,也可以使用for循环的方式;

      索引方式或切片方式查询:

      例子:

    -----------------索引方式--------------------------
    >>> li[0::2] = "abc","kkk"
    >>> print(li)
    ['abc', 2, 'kkk', 4]
    
    
    ----------------切片方式---------------------------
    >>> print(li[0:3])
    [1, 2, 3]

      for循环方式查询:

    >>> li = [1,2,3,4]
    >>> for n in li:
    ...     print(n)
    ... 
    1
    2
    3
    4

    六、列表脚本操作符

      列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

    七、列表截取与拼接

    八、嵌套列表

      使用嵌套列表即在列表里创建其它列表,通过降维. 一层一层看;

    >>> li = ["a","b","c",[1,2,3],7,8,"d"]
    >>> print(li[1])
    b
    >>> print(li[3])
    [1, 2, 3]
    >>> print(li[3][2])
    3

    九、列表内置函数

      1.append(self, p_object)

      说明:用于在列表末尾添加新的对象;

      语法:list.append(obj)

      参数:obj ----------> 添加到列表末尾的对象;

      返回值:该方法无返回值,但是会修改原来的列表。

      实例:

    >>> li = [1,2,3]
    >>> li.append("abc")
    >>> print(li)
    [1, 2, 3, 'abc']

      

      2.clear(self)

      说明:用于清空列表,类似于 del a[:]

      语法:list.clear()

      实例:

    >>> print(li)
    [1, 2, 3, 'abc']
    >>> li.clear()
    >>> print(li)
    []

      3.copy(self)

      说明:用于浅复制列表,类似于 a[:];

      语法:list.copy()

      返回值:返回复制后的新列表;

      实例:

    >>> li1 = ["a","b",[1,2,3],"c"]
    >>> li2 = li1.copy()
    >>> print(li2)
    ['a', 'b', [1, 2, 3], 'c']
    >>> print(id(li1),id(li2))
    139844385179656 139844384906184
    #可以看出两个列表的内存地址是不一样的 >>> print(id(li1[2][0]),id(li2[2][0])) 139844383671616 139844383671616
    #可以看出里面的内容地址是一样的

      4.count(self, value)

      说明:用于统计某个元素在列表中出现的次数

      语法:list.count(obj)

      参数:obj -------> 列表中统计的对象;

      返回值:返回元素在列表中出现的次数;

      实例:

    >>> li = ["a","b","c","a",1,8,"a"]
    >>> print(li.count("a"))
    3

      5.extend(self, iterable)

      说明:用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表);

      语法:list.extend(seq)

      参数:seq --------> 元素列表,必须是一个可迭代对象;

      返回值:该方法没有返回值,但会在已存在的列表中添加新的列表内容。

      实例:

    >>> li = [1,2,3,4]
    >>> li2 = [5,6,7,8]
    >>> li.extend(li2)
    >>> print(li)
    [1, 2, 3, 4, 5, 6, 7, 8]

      6.index(self, value, start=None, stop=None)

      说明:用于从列表中找出某个值第一个匹配项的索引位置。

      语法:list.index(value)

      参数:value --------> 查找的对象;

      返回值:返回查找对象的索引位置,如果没有找到对象则抛出异常;

      实例:

    >>> li = ["a","b","c","a"]
    >>> print(li.index("a"))
    0

     >>> print(li.index("a",1))
     3

     

      7.insert(self, index, p_object)

      说明:用于将指定对象插入列表的指定位置;

      语法:list.insert(index,p_object)

      参数:index ------> 对象p_object需要插入的索引位置;

         p_object ----> 要插入列表中的对象;

      返回值:该方法没有返回值,但会在列表指定位置插入对象;

      实例:

    >>> li = ["a","b","c","a"]
    >>> li.insert(1,"尼玛的")
    >>> print(li)
    ['a', '尼玛的', 'b', 'c', 'a']

      8.pop(self, index=None)

      说明:用于根据索引移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,相当于剪切;

      语法:list.pop(index)

      参数:index -------> 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值;

      返回值:该方法返回从列表中移除的元素对象;

      实例:

    >>> li = ["a","b","c","a"]
    >>> a = li.pop(2)
    >>> print(li)
    ['a', 'b', 'a']
    >>> print(a)
    c

      9.remove(self, value)

      说明:用于根据元素值移除列表中某个值的第一个匹配项;

      语法:list.remove(value)

      参数:value --------> 列表中要移除的元素

      返回值:该方法没有返回值但是会移除两种中的某个值的第一个匹配项。

      实例:

    >>> li = ["a","b","c","a"]
    >>> a = li.remove("a")
    >>> print(li)
    ['b', 'c', 'a']

      10.reverse(self)

      说明:用于反向列表中元素;

      语法:list.reverse()

      返回值:该方法没有返回值,但是会对列表的元素进行反向排序;

      实例:

    >>> li = ["a","b","c","a"]
    >>> li.reverse()
    >>> print(li)
    ['a', 'c', 'b', 'a']

      11.sort(self, key=None, reverse=False)

      说明:用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数

      语法:list.sort(key=None, reverse=False)

      参数:key ------> 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

          reverse -----> 指定排序规则,默认为升序,reverse = True 降序, reverse = False 升序(默认);

      返回值:该方法没有返回值,但是会对列表的对象进行排序;

      实例:

    >>> li = ["Ack","Ync","seq"]
    >>> li.sort(reverse = True)
    >>> print(li)
    ['seq', 'Ync', 'Ack']
  • 相关阅读:
    一次数据库的整理的sql语句
    网页交互及xml的一些属性对程序的影响
    google编程挑战赛Round1的前两道题
    修改Windows帐户密码,导致Sql Server 2000无法启动。
    在虚拟主机中无法实现缩放等交互
    动态控件创建的一些经验
    文章
    如何解决 SQL Server 2000 中的连接问题
    待看
    I帧,P帧,B帧简介
  • 原文地址:https://www.cnblogs.com/zhangjunkang/p/9393635.html
Copyright © 2011-2022 走看看