• Python基础之列表内置方法


    1. 列表

    • 数据结构:以某种方式(如通过编号)组合起来的元素(如数,字符乃至其他数据结构)集合。
    • 在python中,最基本的数据结构为序列。序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,以此类推。
    • 偏移量:相对于序列开头的偏移量

    1.1 序列

    • 容器(container):可包含其他对象的对象
    • 主要的容器:序列(列表和元组(索引)),映射(字典(键))和集合。

    1.2 通用的序列操作

    • 索引
    a = [1, 3, 5, 7]
    print(a[1])  # 打印3
    
    • 切片
    a = [1, 3, 5, 7, 9, 11, 13]
    print(a[1:3])  # [3,5]
    print(a[-3:-1])  # [9, 11]
    print(a[:3])  # [1, 3 , 5]
    print(a[4:])  # [9, 11, 13]
    print(a[:])  # [1, 3, 5, 7, 9, 11, 13]
    print(a[1:6:2])  # [3, 7, 11],指定步长
    print(a[5:1:-1])  # [11, 9, 7],注意开始索引大于结束索引
    
    • 序列相加
    print([1, 2, 3] + [4, 5, 6])  # [1, 2, 3, 4, 5, 6]
    
    • 乘法
    print([1] * 5)  # [1, 1, 1, 1, 1]
    print([none] * 5)  # 创建指定长度空列表
    
    • 成员资格

    要检查特定的值是否包含在序列内,可使用运算符in,返回布尔值。

    name = 'zhaojun'
    print('zh' in name)  # True
    hobby_list = ['sing', 'dancing', 'rap', 'basketball', 'music']
    print('run' in hobby_list)  # False
    
    • 长度、最大值、最小值
    nums = [1, 3, 5, 2, 4]
    print(len(nums))  # 5
    print(max(nums))  # 5
    print(min(nums))  # 1
    

    1.3 列表的基本操作

    • 修改列表:给元素赋值
    nums = [1, 2, 3]
    x[1] = 5
    print(x)  # [1, 5, 3]
    
    • 删除元素
    nums = [1, 2, 3]
    del nums[2]
    print(nums)  # [1, 2]
    
    • 给切片赋值
    nums = [1, 2, 3, 4, 5, 6, 7]
    nums[:3] = [0, 0, 0]
    print(nums)  # [0, 0, 0, 4, 5, 6, 7]
    
    # 赋值是将整段插入切片位置,不考虑数量
    nums = [1, 2, 3, 4, 5, 6, 7]
    nums[1:3] = [0, 0, 0, 0]
    print(nums)  # [1, 0, 0, 0, 0, 4, 5, 6, 7]
    

    1.4 列表方法

    • append(就地修改):将一个对象加到列表末尾。
    nums = [1, 2, 3, 4]
    nums.append(5)
    print(nums)  # [1, 2, 3, 4, 5]
    
    • clear:就地清空列表内容。
    nums = [1, 2, 3, 4]
    nums.clear()
    print(nums)  # [] 返回空列表
    
    # 用切片赋值实现
    nums1 = [1, 2, 3, 4]
    nums1[:] = []
    print[nums1]  # []
    
    • copy:复制列表
    nums = [1, 2, 3, 4]
    nums1 = nums.copy()
    print(nums1)
    print(id(nums))
    print(id(nums1))
    nums.append(5)
    print(nums)
    print(nums1)
    
    """
    执行结果为:
    [1, 2, 3, 4]
    2193656132360
    2193656116168
    [1, 2, 3, 4, 5]
    [1, 2, 3, 4]
    """
    
    • count:计算指定的元素在列表中出现了多少次。
    nums = [1, 2, 2, 3, 4, 4]
    print(nums.count(2))  # 2
    
    • entend:将多个值附加到列表末尾(扩展列表)
    a = [1, 2, 3]
    b = [4, 5, 6]
    a.entend(b)
    print(a)  # [1, 2, 3, 4, 5, 6]
    
    • index:在列表中查找指定值第一次出现的索引。如果搜不到,就会引发异常,ValueError。
    a = ['a', 'b', 'c', 'd']
    print(a.index('b'))  # 1
    
    • insert:将一个对象插入列表。
    nums = [1, 2, 3, 4, 5]
    nums.insert(3, '6')
    print(nums)  # [1, 2, 3, '6', 4, 5]
    
    • pop:从列表中删除一个元素(末尾为最后一个元素),并返回这一元素。

      使用pop可实现一种常见的数据结构———栈(stack),后进先出(LIFO)。

      push和pop是大家普遍接受的两种栈操作(加入和取走)的名称。python没有提供,但可用append代替。

      要创建先进先出(FIFO)的队列,可使用insert(0, ...)代替append,也可继续使用append但弹出用pop(0)。

    x = [1, 2, 3]
    a = x.pop()
    print(a)  # 3
    print(x)  # [1, 2]
    b = x.pop(0)
    print(b)  # 1
    print(x)  # [2]
    
    • remove:删除第一个为指定值的元素(就地修改不返回值)。
    x = ['to', 'be', 'or', 'not', 'to', 'be']
    x.remove('be')
    print(x)  # ['to', 'or', 'not', 'to', 'be']
    
    • reverse:按相反的顺序排列列表中的元素。

      如果要按相反的顺序迭代序列,可使用函数reversed,这个函数不返回列表,而是返回一个迭代器。

    x = [1, 2, 3]
    x.reverse()
    print(x)  # [3, 2, 1]
    
    • sort:对列表就地排序。

      sorted函数:对列表排序,返回排序后列表,原列表不变。

    a = [1, 3, 5, 2, 4]
    a.sort()
    print(a)  # [1, 2, 3, 4, 5]
    
    b = [1, 3, 5, 2, 4]
    c = sorted(b)
    print(b)  # [1, 3, 5, 2, 4]
    print(c)  # [1, 2, 3, 4, 5]
    
  • 相关阅读:
    TextFlow with JavaFX 2
    搞IT的技术人员为什么会如此苦逼
    Spring MVC3.0.5搭建全程
    JetNuke笔记 ( by quqi99 )
    What is the difference between application server and web server?
    Customize Netbeans Platform Splash Screen and About Dialog
    caffe-win10-cifar10
    Ubuntu14.04+caffe+CPU
    win10+caffe+GPU
    Majority Element(169) && Majority Element II(229)
  • 原文地址:https://www.cnblogs.com/zj420255586/p/11306008.html
Copyright © 2020-2023  润新知