• 列表


    一、列表简介

      列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。

      而且列表是有序的,有索引值,可切片,方便取值。

    • 列表是用[ ]来表示,用,隔开“,”是一个有序的数据结构,是从下标0开始的。
    • 列表的可以由各种元素组合(数字,字符串,bool类型),但是在实际开发中,都是使用同一种数据类型的。
    • 列表还可以嵌套其他的数据结构(列表,字典,元祖等)

    二、定义列表

    >>> my_list.

    my_list.append(   my_list.count(    my_list.insert(   my_list.reverse(

    my_list.clear(    my_list.extend(   my_list.pop(      my_list.sort(

    my_list.copy(     my_list.index(    my_list.remove(   

    2.1 创建列表的4种方式

    1.直接创建

    >>> my_list1 = [1, 2, 3, 4]

    2.使用列表类的方法

    >>> my_list2 = list([1,2,3,4])

    3.使用列表进行转换(下面是把一个数组转换为列表)

    >>> my_list3 = list((1,2,3,4))

    4.列表推导式

    >>> my_list4 = [i for i in range(1000) if i %2 == 0]

    2.2 列表的运算符重载

      对于运算符重载,是类中的特殊方法。  相对应的数学表现方式,映射到 对于的方法。 

        比如 。 list_a + list_b 就会映射到__add__方法。这些都是代码定义的,我们在后面也可以实现这些东西。查看list的帮助文档,就会出现下面的方法

      __add__     a+b
      __iadd__    a+=b
      __mul__     a*b
      __imul__    a*=b

    		str_list = ['c'*3]     # ['ccc']
    		sr_list  = ['c']*3     # ['c','c','c']
    		str_list = [['c']*3]   # [['c','c','c']] 

    三、列表的索引与切片

    3.1 索引

      列表是可序的,下标从0开始。可支持正向和反向取值:

        正向:第一个为0,第二个为1

        反向:最后一个-1,倒数第二个-2

    >>> list1[0]
    'a'
    >>> list1[2]
    'c'
    >>> list1[-1]  #最后一个
    'av'
    >>> list1[-2]  #倒数第二个
    'd'

    3.2 切片

        L[start:[end:step]]  藏头露尾: 包含start 不包括end

          step支持负数。当step是负数的时候,start是靠右边的index,end是靠左边的index。

    li[0:3]              #打印前3个索引的值
    li[:3]               #同上
    li[3:]               #打印第三个到末尾
    li[::2]              #从头到尾,跳着打印
    li[::-1]             #倒序打印
    li[-2::-2]           #倒序从倒数第二个向前取值,每隔2个取一次值
    li[5:0:-2]           #倒序从索引5向前取值,每隔2个取一次值    

    四 、列表的增、删、改、查

    4.1  增

      append、insert、extend学会看帮助文档:

     append(...)
           L.append(object) -> None -- append object to end
        追加一个元素到末尾,返回值为None
        str_list.append('f') insert(...) L.insert(index, object) -- insert object before index
        
    insert(index, obj)插入元素,index为要插入的索引位置,obj为插入的值。
        str_list.insert(2,'g')
    
     extend(...)
           L.extend(iterable) -> None -- extend list by appending elements from the iterable
        extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)即迭代追加
        a = [1,2,3]
        b = ['a','b','v']
        a.extend(b)

    4.2 删除

    方法1:pop 

        L.pop([index]) -> item -- remove and return item at index (default last).

        Raises IndexError if list is empty or index is out of range.

    >>> list1.pop()         #无参数,删除最后一个
    'av'
    >>> list1.pop(3)        #按照索引删除
    'd'    

    方法2:remove

        L.remove(value) -> None -- remove first occurrence of value.

        Raises ValueError if the value is not present.

      移除列表中某个值的第一个匹配项,无返回值.不存在则报错

    >>> list1.remove('a')

    方法3:del python内置函数

      功能1: 删除整个列表  del list1

      功能2:按照索引或切片删除

        del list1[1]

        del list1[1:3]

      功能3:按照步长删元素

        del list1[::2]

    方法4:clear 

      删除列表的所有元素,无返回值

        list1.clear()

    4.3 修改 

      按照索引修改: a[1] ='b'

      按照切片修改:a[1:3]  =[1,2]  注意切片长度需要和后面列表的长度相等

    4.4 查

      查列表的长度:

          1.    list1.count()

          2.   len(list1)

         使用索引和切片的方式查看:  

          查看上文的

      根据value来找索引:

        list1.index('hui')

    五、其他方法

      列表方法还剩下三个:sort ,reverse,copy

      sort    

    >>> li = [2,5,23,21,4,1]
    >>> li.sort()                   #默认排序是从小到大 
    >>> li
    [1, 2, 4, 5, 21, 23]    
    =================================================
    >>> li = [2,5,23,21,4,1]
    >>> li.sort(reverse=True)  #修改排序方式,变成从大到小
    >>> li
    [23, 21, 5, 4, 2, 1]

      reverse

        反向排序

    >>> li = ['楼会',1,2,'']
    >>> li.reverse()
    >>> li
    ['', 2, 1, '楼会']
    ========================
    li[::-1] # 也可以实现反向排序

      copy

      浅拷贝

        关于浅拷贝的内容后续会深入,这里暂时不介绍

  • 相关阅读:
    串口通信理论知识
    串口通信基础
    串口中断程序步骤及代码
    Django之CRM项目Day6-公私户转换问题解决 班主任功能
    Django之CRM项目Day5-跳转页面 跟进记录 报名记录
    Django之CRM项目Day4-编辑客户 公私户 模糊查询
    Django之CRM项目Day3-客户展示及分页
    Django的ModelForm
    Django相关面试题
    Django基础自测
  • 原文地址:https://www.cnblogs.com/louhui/p/8799591.html
Copyright © 2020-2023  润新知