zoukankan      html  css  js  c++  java
  • python数据类型之列表

    列表定义

    列表是由一系列案特定顺序排列的元素组成。在python中,用方括号([])来表示,并用逗号来分隔其中的元素。

    names = ['Alex',"Tenglan",'Eric']
    

     列表访问

    • 列表元素的访问从索引0开始,而不是索引1开始。
    • 列表的索引可以是从负数开始。这种语法经常在需要在不知道列表长度的情况下访问元素。
    >> names[0]
    'Alex'
    >>> names[2]
    'Eric'
    >>> names[-1]
    'Eric'
    >>> names[-2] #还可以倒着取
    'Tenglan'
    View Code

    列表操作

    修改列表元素

    >>> names
    ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
    >>> names[2] = "该换人了"
    >>> names
    ['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
    View Code

    添加列表元素

    • 从列表末尾添加,利用append方法。
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']
    >>> names.append("我是新来的")
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    View Code
    • 从列表任意位置添加,利用insert方法。
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    >>> names.insert(2,"强行从Eric前面插入")
    >>> names
    ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    
    >>> names.insert(5,"从eric后面插入试试新姿势")
    >>> names
    ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
    View Code

    删除列表元素

    • 利用“del”删除,删除的列表元素不能再使用。
    >>> del names[2] 
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
    >>> del names[4]
    >>> names
    ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
    >>> 
    View Code
    • 利用pop方法删除

    在pop方法中,默认是从列表末尾删除,但也可以给pop方法传参,参数表示列表的索引;利用pop方法弹出的列表元素可以被再次使用。

     1 >>>name = ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']
     2 >>> names.pop() #删除列表最后一个值 
     3 '我是新来的'
     4 >>> names
     5 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
     6 
     7 >>> names.pop(2) #删除列表任意一个值 
     8 '我是新来的'
     9 >>> names
    10 ['Alex', 'Tenglan', 'Tom', 'Amy']
    View Code
    • 利用列表元素值删除

    使用remove方法实现。

    1 >>>name = ['Alex', 'Tenglan', 'Eric', 'Rain']
    2 >>>name.remove('Eric')
    3 ['Alex', 'Tenglan','Rain']
    View Code
    • 如果要从列表中删除一个元素,而这个元素不会再以任何方式使用,那么就用“del”删除,反之,用pop方法删除。
    • 方法remove只能删除第一个指定的元素。如果要删除的值在列表中存在多个,那么就要用循环去删除。

    列表排序

    • 永久性改变列表顺序

    利用sort方法实现。给sort方法的参数为“reverse=True”时,可以反向排序;排序的原则是按照字母顺序排序的。

    1 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    2 >>> names.sort()
    3 >>> names
    4 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
    5 
    6 >>> names.sorted(reverse=True) #反转
    7 >>> names
    8 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
    View Code

    同样也可以利用reverse方法实现反转。

    1 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    2 >>> names.sort()
    3 >>> names
    4 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
    5 
    6 >>> names.reverse() #反转
    7 >>> names
    8 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
    View Code

    还需要注意的是,在python3中,不同数据类型是无法排序的

    1 >>> names
    2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
    3 >>> names.sort() #排序
    4 Traceback (most recent call last):
    5   File "<stdin>", line 1, in <module>
    6 TypeError: unorderable types: int() < str() 
    View Code
    • 保留原来列表的排列顺序

    利用sorted方法实现。跟sort方法同理,给sorted方法的参数为“reverse=True”时,可以反向排序。

    1 >>>names = ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    2 >>>print(sorted(names))
    3 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']
    4 
    5 >>>print(names)
    6 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    View Code

    列表元素下表获取

    利用index方法实现。

    1 >>> print(names)
    2 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
    3 >>> names.index("Amy")
    4 2 #只返回找到的第一个下标
    View Code

    列表元素出现次数获取

    利用count方法实现

    1 >>> print(names)
    2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
    3 >>> names.count("Amy")
    4 2
    View Code

    获取列表长度

    利用len方法实现。需要注意的是,在计算列表长度时,是从1开始的。

    1 >>> names = ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    2 >>> len(names)
    3 8
    View Code

    列表切片操作

    需要注意的是,“:”前面的索引表示起始位置,“:”后面的索引表示终止位置。

     1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]
     2 >>> names[1:4]  #取下标1至下标4之间的数字,包括1,不包括4
     3 ['Tenglan', 'Eric', 'Rain']
     4 >>> names[1:-1] #取下标1至-1的值,不包括-1
     5 ['Tenglan', 'Eric', 'Rain', 'Tom']
     6 >>> names[0:3] 
     7 ['Alex', 'Tenglan', 'Eric']
     8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
     9 ['Alex', 'Tenglan', 'Eric']
    10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
    11 ['Rain', 'Tom', 'Amy'] 
    12 >>> names[3:-1] #这样-1就不会被包含了
    13 ['Rain', 'Tom']
    14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
    15 ['Alex', 'Eric', 'Tom'] 
    16 >>> names[::2] #和上句效果一样
    17 ['Alex', 'Eric', 'Tom']
    View Code

    列表解析

    列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

    1 >>>s = [value**2 for value in range(1,5)]
    2 >>>print(s)
    3 [1, 4, 9, 16]
    View Code

    数值列表

    可以利用list方法和range方法,快速实现定义数值列表。

    1 >>>numbers = list(range(1,30,3))
    2 >>>print(numbers)
    3 [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
    View Code

    可以利用max方法,min方法和sum方法,计算需要的值。

    1 >>>numbers = list(range(1,30,3))
    2 >>>print(numbers)
    3 >>>print(min(numbers))
    4 >>>print(max(numbers))
    5 >>>print(sum(numbers))
    6 [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
    7 1
    8 28
    9 145
    View Code

     

  • 相关阅读:
    git线上操作
    IDEA快捷方式
    Java 四种线程池
    java 获取当前天之后或之前7天日期
    如何理解AWS 网络,如何创建一个多层安全网络架构
    申请 Let's Encrypt 通配符 HTTPS 证书
    GCE 部署 ELK 7.1可视化分析 nginx
    使用 bash 脚本把 AWS EC2 数据备份到 S3
    使用 bash 脚本把 GCE 的数据备份到 GCS
    nginx 配置 https 并强制跳转(lnmp一键安装包)
  • 原文地址:https://www.cnblogs.com/cjaaron/p/8658113.html
Copyright © 2011-2022 走看看