python个人学习笔记(2)——列表

列表

  • 列表的含义:由一系列按特定顺序排列的元素。

    • 用方括号[]来表示列表.并用逗号来分隔其中的元素,元素要用引号分别括起来。
    • 访问列表元素
      先指出列表的名称,再指出元素的索引,并将其放在方括号内
    • 索引从0而不是1开始
      • 在python中,第一个列表元素的索引为0,而不是1。在大多数编程语言中都是如此,这与列表的底层操作直接相关。
      • python为访问最后一个列表元素提供了一种特殊语法。将索引指定为-1,可让python返回最后一个列表元素,其他依此类推
    #示例如下:
    bicycles = ['trek','cannondale','redline','specialized']
    print(bicycles[0])
    print(bicycles[-1])
    

    输出结果为:
    tred
    specialized

    • 使用列表中的各个值
      可像使用其他变量一样使用列表中的各个值。
  • 修改、添加和删除元素

    • 修改列表元素
      修改列表元素的语法和访问列表元素的语法类似要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
    • 在列表中添加元素
      • 在列表末尾添加元素
        • append() 将元素添加到列表末尾而不影响其他所有元素
      • 在列表中插入元素
        • insert() 可在列表中任何位置添加新元素。为此,需要指定新元素的索引和值
    #示例如下:
    names = ['Lee','John','Tom']  
    print(names)
    names[0] = 'Lily'
    print(names)
    names.append('Lily')
    print(names)
    names.insert(0,'Amy')
    print(names)
    

    输出结果为:
    [‘Lee’,‘John’,‘Tom’]
    [‘Lily’,‘John’,‘Tom’]
    [‘Lee’,‘John’,‘Tom’,‘Lily’]
    [‘Amy’,‘Lee’,‘John’,‘Tom’,‘Lily’]

    • 在列表中删除元素
      • 使用del语句
        注意,使用del语句可任何位置处的列表元素,条件是知道其索引
      • 使用方法pop()删除元素
        方法pop()可删除列表末尾元素,并让你能够接着使用它。
      • 弹出列表中任何位置处的元素
        实际上,你可以使用pop()来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可
      • 根据值删除元素
        有时候你不知道要从列表中删除的值所处的位置。可使用方法remove()
        注意:方法remove()和方法pop()一样,删除值后也可接着使用它的值。同时,方法remove()只删除第一个指定的值。如果要删除的值可能会出现多次,就需要使用循环来判断是否删除了所有这样的值。
    #示例如下:
    names = ['Amy','Lee','John','Tom','Lily']  
    print(names)
    del names[0]
    print(names)
    popped_name_1 = names.pop()
    print(names)
    print(popped_name_1)
    popped_name_2 = names.pop(1)
    print(names)
    print(popped_name_2)
    removed_name = 'Tom'
    names.remove(removed_name)
    print(names)
    print(removed_name)
    

    输出结果为:
    [‘Amy’,‘Lee’,‘John’,‘Tom’,‘Lily’]
    [‘Lee’,‘John’,‘Tom’,‘Lily’]
    [‘Lee’,‘John’,‘Tom’]
    Lily
    [‘Lee’,‘Tom’]
    John
    [‘Lee’]
    Tom
    如果你不确定该使用del语句还是方法pop(),下面是一个简单的判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()

术语弹出(pop)源自于这样的类比:列表就像一个栈1,而删除列表末尾的元素相当于

  • 组织列表
    • 使用方法sort()对列表进行永久性排序
      • 按字母顺序(字符编码)从小到大排序
      • 在括号中添加reverse=True实现从大到小排序
        注意:sort()方法对列表元素的修改是永久性的
    • 使用函数sorted()对列表进行临时排序
      • 同样的,括号中添加reverse=True也可以实现从大到小排序
        注意:使用函数sorted(),列表元素顺序不会发生改变
    • 倒着打印列表
      • 方法reverse()对列表永久性反转当前列表顺序
        要想列表恢复原来的顺序,只需要再调用一次方法reverse()即可
    • 确定列表的长度
      • 使用函数len()可快速获悉列表的长度。
        Python计算列表长度数时从1开始,因此在计算列表长度时,不会遇到差一错误
    #示例如下:
    names = ['Lee','John','Lily','Tom']
    print(sorted(names))
    print(names)
    names.sort()
    print(names)
    names.sort(reverse=True)
    print(names)
    names.reverse()
    print(names)
    print(len(names))
    
    运行结果为:
    [‘John’, ‘Lee’, ‘Lily’, ‘Tom’]
    [‘Lee’, ‘John’, ‘Lily’, ‘Tom’]
    [‘John’, ‘Lee’, ‘Lily’, ‘Tom’]
    [‘Tom’, ‘Lily’, ‘Lee’, ‘John’]
    [‘John’, ‘Lee’, ‘Lily’, ‘Tom’]
    4

函数sorted会返回一个列表,而不会对当前列表进行修改;方法reverse()和方法sort()没有返回值,而是对当前列表进行修改。

  • 使用列表时避免索引错误
    • 假如有一个包含3个元素的列表,却要获取第四个元素时,就会引发索引错误

      注意:索引是从0开始计算的,对一个仅有三个元素的列表来说,索引为3的元素是不存在的,若是试图使用索引为3的元素,则会导致索引错误。
    • 引用列表最后一个元素时,可利用索引-1。此时,只有列表为空时才会引发索引错误
    • 索引错误消息如下:
      IndexError:list index out of range

    发生索引错误却找不到解决方法时,请尝试将列表或其长度打印出来。列表可能与你想象的截然不同,特别是列表进行动态处理后更是如此。通过查看列表或其包含的元素数,可帮你找出这种错误。

个人从书本学到的知识,作为自己学习笔记的同时,与各位朋友分享,如有不足,请多多指教

参考文献:《Python编程从入门到实践》【美】Eric Matthes 著 袁国忠 译


  1. 栈是一种操作受限制的线性表,将允许进行插入、删除的一端称为栈顶,另一端称为栈底 ↩︎

你可能感兴趣的:(Python个人学习笔记,python,列表)