IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python源码中的学习笔记_第4章 -> 正文阅读

[开发工具]python源码中的学习笔记_第4章

列表基础

#
# 主题:列表基础
#

if __name__ == '__main__':
    # 列表中可以存储多个元素,每个元素的数据类型可以不相同
    # 每个元素指向不同的对象,不同的对象存储不同类型的数据
    myList = ['hello', True, 98]
    print( id(myList))              # 输出 2686147977800
    print( type(myList))            # 输出 <class 'list'>
    print(myList)                   # 输出 ['hello', True, 98]

创建列表

#
# 主题:列表基础
#

if __name__ == '__main__':
    # 列表中可以存储多个元素,每个元素的数据类型可以不相同
    # 每个元素指向不同的对象,不同的对象存储不同类型的数据
    myList = ['hello', True, 98]
    print( id(myList))              # 输出 2686147977800
    print( type(myList))            # 输出 <class 'list'>
    print(myList)                   # 输出 ['hello', True, 98]

列表的特点

在这里插入图片描述

#
# 主题:列表的特点
#

if __name__ == '__main__':
    a = ['hello', True, 1]

    # 列表元素按顺序有序排序
    # 索引映射唯一数据
    print(a[0], a[-3])

    # 列表可以储存重复数据
    # 任意数据类型混存
    b = ['hello', True, 1, 1]
    print( list(b))

    # 系统会自动根据需要动态分配和回收内存

查询列表

#
# 主题:查询列表
#

if __name__ == '__main__':
    a = ['hello', True, 2, True]

    # 获取列表中指定元素的索引
    print(a.index('hello'))         # 输出 0
    print(a.index(True))            # 输出 1

    # 若列表中有若干相同的元素,则只返回相同元素的第一个元素的索引
    print(a.index(True))            # 输出 1

    # 若列表中没有要查询的元素,则报错 ValueError

    # index(要查找的元素, stop, end) 可以规定查询的范围为 [stop, end)
    print(a.index('hello', 0, 3))   # 输出 0
    print(a.index(1, 0, 3))         # 输出 1,因为 True 的值为 1
    # print(a.index(2, 0, 2))         # 元素 2 不在索引号 0~1 的范围内,会报错ValueError

    # 根据索引号获取列表中的单个元素
    print(a[3])                     # 输出 True
    print(a[-1])                    # 输出 True
    print(a[-4])                    # 输出 hello

    # 若列表中没有要查询的索引,则报错 IndexError

    # 列表名[start: stop: step] 获取列表中多个元素(又称“切片”)
    # 列表名[start: stop] 查询范围[start, stop)
    # 切片得到的列表与愿列表是不同的对象,只不过两个有相同的元素
    a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    print(a[0: 2: 1])

    print(a[0: 2])              # 默认步长为 1
    print(a[0: 2:])             # 默认步长为 1
    print(a[ : 6: 2])           # 默认范围从第一个元素开始
    print(a[0: : 2])            # 默认范围到最后一个元素结束

    print(a[ : : -1])           # 默认范围为整个列表,步长为负数表明切片列表元素与原列表元素顺序相反
    print(a[9: : -1])           # 与上一句输出相同
    print(a[6: 0: -2])

列表元素的判断与遍历

#
# 主题:列表元素的判断与遍历
#

if __name__ = '__main__':
    lst = [10, 20, 'python', 'hello']
    print(10 in lst)
    print(100 in lst)

    print(10 not in lst)
    print(100, not in lst)

    # 遍历列表元素
    for item in lst:
        print(item)

添加列表元素

#
# 主题:添加列表元素
#

if __name__ == '__main__':
    lst = [10, 20, 30]
    lst.append(100)                 # 在原列表的后面添加新元素
    print(lst)                      # 添加元素后的列表与原列表是同一个对象

    lst2 = ['hello', 'world']
    lst.append(lst2)                # lst2 作为对象,整体成为 lst 的一个元素
    print(lst)                      # [10, 20, 30, 100, ['hello', 'world']]
    lst.extend(lst2)                # 获取 lst2 中每个数据,并按顺序添加到原数列的后面
    print(lst)                      # [10, 20, 30, 100, ['hello', 'world'], 'hello', 'world']

    lst.insert(1, '我在这')          # 在规定的索引处添加自定义对象
    print(lst)                      # [10, '我在这', 20, 30, 100, ['hello', 'world'], 'hello', 'world']

    lst[1: : ] = ['a', 'b', 'c']    # 将原列表中规定范围内的元素删掉,再添加新的元素
    print(lst)

删除列表元素

#
# 主题:删除列表元素
#

if __name__ == '__main__':
    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    lst.remove(4)               # 删掉指定的元素
                                # 若要删除的元素不在列表中,则报错 ValueError
    print(lst)                  # [1, 2, 3, 5, 6, 7, 8, 9]

    lst.pop(1)                  # 删除指定索引上的元素
                                # 若指定的索引超出列表的索引范围,则报错 IndexError
    print(lst)                  # [1, 3, 5, 6, 7, 8, 9]
    lst.pop()                   # 未指定索引,则默认删除最后一个元素
    print(lst)                  # [1, 3, 5, 6, 7, 8]

    lst1 = lst[1: 3]            # 该操作称为“切片”,lst1 与 lst 是不同的对象,即所对应的存储位置不同
    print(lst1)                 # [3, 5]

    print(lst)                  # [1, 3, 5, 6, 7, 8]
    lst[1: 3] = []              # 该操作前后,都是同一个对象,即 lst
    print(lst)                  # [1, 6, 7, 8]

    lst.clear()                 # 清除列表中所有元素
    print(lst)                  # []

    lst.extend(['这', '是', '添', '加', '的', '内', '容'])
    print(lst)                  # ['这', '是', '添', '加', '的', '内', '容']
    del lst                     # 删除列表对象,删除了列表的内容和地址
    # print(lst)                  # 将报错 NameError,报错 lst 没有定义

修改列表元素

#
# 主题:修改列表元素
#

if __name__ == "__main__":
    lst = [1, 2, 3, 4, 5, 6]

    lst[2] = 30             # 该操作修改了 lst[2] 上的引用
                            # 原先 lst[2] 指向 3 所在对象,后来指向 30 所在对象
    print(lst)              # [1, 2, 30, 4, 5, 6]

    lst[1: 3] = [300, 400, 500, 600]
    print(lst)              # [1, 300, 400, 500, 600, 4, 5, 6]

排序列表元素

#
# 主题:排序列表元素
#

if __name__ == '__main__':
    lst = [20, 40, 10, 98, 54]
    print('原列表:', lst)

    lst.sort()                     # 无参数,表明默认升序排序。相当于 lst.sort(reverse=False)
                                    # 排序时在原列表的基础上进行的,没有生成新的列表
    print('升序后:',lst)           # [10, 20, 40, 54, 98]

    lst.sort(reverse=True)
    print('降序后:', lst)          # [98, 54, 40, 20, 10]

    lst1 = sorted(lst)              # 升序排序,产生新的列表对象
    print(lst1)                     # [10, 20, 40, 54, 98]

    lst1 = sorted(lst, reverse=True)    # 降序排序,产生新列表对象
    print(lst1)                     # [98, 54, 40, 20, 10]

列表生成式(生成列表的公式)

#
# 主题:列表生成式(生成列表的公式)
#

if __name__ == '__main__':
    lst = [i*i for i in range(1, 10)]   # for i in range(1, 10) 是 i 的取值范围[1, 10)
                                        # i*i 是 lst 的通项(类比数学数列的概念)
    print(lst)                          # [1, 4, 9, 16, 25, 36, 49, 64, 81]
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:15:42  更:2021-10-03 17:15:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:51:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码