• 小白学 Python(9):基础数据结构(列表)(上)


    人生苦短,我选Python

    前文传送门

    小白学 Python(1):开篇

    小白学 Python(2):基础数据类型(上)

    小白学 Python(3):基础数据类型(下)

    小白学 Python(4):变量基础操作

    小白学 Python(5):基础运算符(上)

    小白学 Python(6):基础运算符(下)

    小白学 Python(7):基础流程控制(上)

    小白学 Python(8):基础流程控制(下)

    前言

    在开始今天的内容之前先简单介绍一下 Python 内置的数据结构,包括:

    • 列表(list)
    • 元组(tuple)
    • 字典(dict)
    • 集合(set)

    在Python语言中,以上4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。

    列表(list)

    Python list(列表),是Python中最常用的一种数据结构,它是一组用方括号括起来、逗号分隔的数据。

    创建列表:

    list1 = [1, 2, 3, 4, 5]
    print(list1)
    
    list2 = ['a', 'b', 'c', 'd', 'e']
    print(list2)

    输出结果:

    [1, 2, 3, 4, 5]
    ['a', 'b', 'c', 'd', 'e']

    列表中的数据类型可以是相同的,如上面的 int 和 str ,也可以是不同的:

    list3 = [1, 2, 3, 'a', 'b']
    print(list3)

    结果如下:

    [1, 2, 3, 'a', 'b']

    这个还不算什么,还有更骚的操作,列表里面是可以嵌套列表的:

    list4 = [1, 2.33, 'a', list3]
    print(list4)

    结果如下:

    [1, 2.33, 'a', [1, 2, 3, 'a', 'b']]

    这一层一层的,又让我想起了洋葱。。。

    空列表

    list5 = []
    print(list5)

    列表的一些基操

    查看列表的类型

    查看类型的函数是 type() ,那么如果我们看下列表的类型呢?

    print(type(list4))

    结果如下:

    <class 'list'>

    通过索引取出列表的元素

    语法:列表名[索引]

    list1 = [1, 2, 3, 4, 5]
    print(list1[0])

    这里的数字 0 是列表的索引,含义是取出第 0 位的元素。

    注意: 这里的索引是从 0 开始的,例如 list1 的索引是 0 ~ 4 。

    如果我们直接去取 list1 的索引为 5 的值:

    list1 = [1, 2, 3, 4, 5]
    print(list1[5])

    这时会直接抛出异常。

    Traceback (most recent call last):
      File "F:/project/python-learning/base-data-list/Demo.py", line 20, in <module>
        print(list1[5])
    IndexError: list index out of range

    这个异常的含义是:列表索引超出范围。

    Python 列表除了正索引还有一个负索引,正索引是列表从头到尾的方向,负索引的是从尾到头。

    列表:  ['a', 'b', 'c', 'd', 'e']
             |    |    |    |    |
    正索引:  0    1    2    3    4
    负索引:  -5  -4   -3   -2   -1

    使用加号连接列表

    语法: 列表1 + 列表2

    print(list1 + list2)

    结果如下:

    [1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']

    对列表元素进行 for 循环

    语法:
    for 变量 in 列表:
    print(变量)

    for i in list1:
        print(i)

    结果如下:

    1
    2
    3
    4
    5

    获取列表长度

    语法: len(列表)

    print(len(list1))
    
    print(len(list1 + list2))

    结果如下:

    5
    10

    检查列表中是否存在某个元素

    返回的是布尔值 bool 。

    print('a' in list1)
    print(1 in list1)

    结果如下:

    False
    True

    删除列表

    语法: del 列表名

    list1 = [1, 2, 3, 4, 5]
    
    del list1
    print(list1)

    结果如下:

    Traceback (most recent call last):
      File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 40, in <module>
        print(list1)
    NameError: name 'list1' is not defined

    很显然,将 list1 删除之后会报错 list1 未定义。

    删除列表中索引为 i 的元素

    语法: del list1[i]

    list1 = [1, 2, 3, 4, 5]
    
    del list1[2]
    print(list1)

    结果如下:

    [1, 2, 4, 5]

    返回列表中最大的值

    语法:max(list1)

    print(list1)
    print(max(list1))
    print(list4)
    print(max(list4))

    结果如下:

    [1, 2, 4, 5]
    5
    [1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
    Traceback (most recent call last):
      File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 51, in <module>
        print(max(list4))
    TypeError: '>' not supported between instances of 'str' and 'float'

    list4 中取最大值报错了,报错原因是 ‘str’ 和 ‘float’ 无法比较大小。

    返回列表中最小的值

    语法:min(list1)

    print(list1)
    print(min(list1))
    print(list4)
    print(min(list4))

    结果如下:

    [1, 2, 4, 5]
    1
    [1, 2.33, 'a', [1, 2, 3, 'a', 'b']]
    Traceback (most recent call last):
      File "D:/Development/Projects/python-learning/base-data-list/Demo.py", line 51, in <module>
        print(max(list4))
    TypeError: '<' not supported between instances of 'str' and 'float'

    list4 中取最小值报错了,报错原因和上面取最大是一样的, ‘str’ 和 ‘float’ 无法比较大小。

    示例代码

    本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

    示例代码-Github

    示例代码-Gitee

    转载声明:本博客由极客挖掘机创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。
  • 相关阅读:
    第二周教学设计反思
    uni-app,一套代码应用在多个平台
    新CMS
    学习js
    关于数据库
    自己写的一段jquery实现当滚动条滑动到某个位置实现向中间移动
    js平滑滚动到顶部、底部、指定地方
    统一一个帝国中搜索页面的模板
    帝国CMS的总结
    回到顶部的功能
  • 原文地址:https://www.cnblogs.com/alliswell2king/p/11753910.html
Copyright © 2020-2023  润新知