zoukankan      html  css  js  c++  java
  • Python 学习 第三篇:数据类型(列表)

    列表和字段都可以在原处进行修改,可以按照需求增长或缩短,并且可以包含任何类型的对象或被嵌套。列表和字典存储的是对象的引用,而不是拷贝。

    一,列表

    列表是有序的序列,每一个列表项的顺序是固定的,这使得列表可以通过指定的偏移来索引和分片。列表是可变的序列,支持在原处修改。

    列表项可以是任何类型,或对象,也可以嵌套列表。

    1,列表的创建

    创建一个空的列表:

    >>> l=[]

    创建一个纯数字列表:

    >>> l=[1,2,3]

    创建一个数字和字符的混合类型列表:

    >>> l=[1,2,'a']

    创建一个嵌套对象的列表:

    >>> l=[1,'a',[2,'b']]
    >>> l
    [1, 'a', [2, 'b']]

    创建一个范围列表:

    range() 函数用于创建一个整数列表,range函数语法:

    range(start, stop[, step])

    参数说明:

    • start: 计数从 start 开始,默认是从 0 开始。例如range(5)等价于range(0, 5);
    • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

    使用range函数创建一个范围列表:

    >>> list(range(1,10,2))
    [1, 3, 5, 7, 9]

    2,列表解析

    使用列表解析,可以使用迭代器来生成列表:

    >>> l=[x**2 for x in range(0,5)]
    >>> l
    [0, 1, 4, 9, 16]

    3,列表的索引和分片

    列表和字符串都是有序的序列,它们的索引和分片的格式很相似:

    • l[i]:索引单个列表项
    • l[i][j]:如果列表项是序列,那么可以使用多重索引
    • l[i:j]:对列表分片

    例如:对列表进行索引和分片

    >>> l=[1,'a',[2,'b']]
    >>> l[1]
    'a'
    >>> l[2]
    [2, 'b']
    >>> l[2][1]
    'b'
    >>> l[0:2]
    [1, 'a']

    二,列表操作

    列表的长度是固定的,不能越界访问列表,列表的最大索引是列表长度-1,越界会导致Python报错。

    1,追加

    向列表的末尾追加一个列表项: list.append(obj)

    >>> l.append(4)
    [1, 'a', [2, 'b'], 4]

    向列表的末尾追加一个序列: list.extend(seq)

    >>> l.extend([3,5])
    [1, 'a', [2, 'b'], 4, 3, 5]

    2,插入

    向列表的特定位置插入一个列表项:list.insert(index,obj)

    >>> l.insert(2,'b')
    [1, 'a', 'b', [2, 'b'], 4, 3, 5]

    3,移除列表项

    根据索引来删除列表中的元素,list.pop(index=-1),返回的是删除的列表项:

    >>> l.pop(2)
    'b'
    >>> l
    [1, 'a', [2, 'b'], 4, 3, 5]

    根据索引来删除列表项,可以使用 del 命令来删除指定索引的列表项: del list[index]

    >>> del l[5]
    [1, 'a', [2, 'b'], 4, 3]

    根据元素值来删除列表的元素,可以使用 list.remove(obj)函数, 从列表中删除值是obj的元素:

    >>> l.remove(3)

    4,修改列表项

    由于列表是可变的,支持原处修改列表项,也就是说,可以通过索引直接修改列表对象。

    >>> l[4]=l[4]+2
    >>> l
    [1, 'a', [2, 'b'], 4, 5]

    5,对列表进行排序:list.sort()

     当列表项具有可比性时,可以对列表进行排序,list.sort(reverse=False),

    • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
    >>> sl=['a','c','e','d']
    >>> sl.sort()
    >>> sl
    ['a', 'c', 'd', 'e']

    6,查看某一元素的索引 list.index(obj)

    从列表中找出某个值第一个匹配项的索引位置

    >>> l.index(5)
    4

    7,列表的其他操作

    • 统计列表元素的数量:len(list)
    • 列表的合并:list1+list2,生成新的列表
    • 列表的重复:list*2,等价于 list+list,生成新的列表
    • 列表的迭代: obj in list

    +和* 会生成新的列表,而list.append(),list.sort(),list.xxx()等函数和del list[i]是在原处修改,不会生成新的列表。

     

    参考文档:

  • 相关阅读:
    安装MySQL
    Apache安装与重启、启动失败
    MySQL重启
    数据库查询乱码
    MySQL数据表操作、查看mysql表的信息等
    rust学习之一:基本语法
    llvm clang的编译和安装
    Linux 性能分析60秒初步排除手段
    pahole编译过程libbpf: failed to find valid kernel BTF
    ipmitool常用指令测试大全
  • 原文地址:https://www.cnblogs.com/ljhdo/p/4907733.html
Copyright © 2011-2022 走看看