Python入门学习篇(五)——列表字典

news2025/1/14 18:44:25

1 列表

1.1 定义

①有序可重复的元素集合
②可以存放不同类型的数据
③个人理解:类似于java中的数组

1.2 相关方法

1.2.1 获取列表长度

a 语法
len(列表名)
b 示例代码
list2 = [1, 2, "hello", 4]
print(len(list2))
c 运行结果

在这里插入图片描述

1.2.2 获取列表值

a 语法
列表名[下标]
# 下标默认从0开始,若列表中嵌套了列表那么就为: 列名表[列表位置][值的位置]
# 如: lst3 = [100, 3.14, True, "湖南人", [1, 2, 3, 4]] 想要取出数字3,那么就为 lst3[4][2]
b 示例代码
list2 = [1, 2, "hello", 4]
print(f"list2列表的第三个位置为: {list2[2]}")
c 运行结果

在这里插入图片描述

1.2.3 值的倒序

a 语法
列表名.reverse()

b 示例代码
list2 = [1, 2, "hello", 4,'world']
list2.reverse()
print(list2)
c 运行结果

在这里插入图片描述

1.2.4 新增值-加在末尾

a 语法
列表名.append()
b 示例代码
list2 = [1, 2, "hello", 4,'world']
list2.append("666")
print(list2)
c 运行结果

在这里插入图片描述

1.2.5 新增值-插入任意位置

a 语法
列表名.insert(插入下标,插入值)
# 插入下标默认从0开始算 若为1,则会把值插入到列表的第二个位置,原先第二个位置以及第二个位置之后的值都会往后移
b 示例代码
list2 = [1, 2, "hello", 4, 'world']
list2.insert(1, "666")
print(list2)
c 运行结果

在这里插入图片描述

1.2.6 合并列表

a 语法
列表名1.extend(列表名2)
# 会在列表1最后一个元素的后面拼上列表2的所有元素 即 新的列表1=列表1+列表2
b 示例代码
list1 = [1024, 9, "TTG"]
list2 = [1, 2, "hello", 4, 'world']
list1.extend(list2)
print(list1)
c 运行结果

在这里插入图片描述

1.2.7 删除元素-从左往右检索,找到即删,只删一个

a 语法
列表名.remove()
b 示例代码
list2 = [1, 2, "hello", 1, 'world']
list2.remove(1)
print(list2)
c 运行结果

在这里插入图片描述

1.2.8 删除元素-删除列表的最后一个元素

a 语法
pop()
# pop()的返回值是删除的元素
b 示例代码
list2 = [1, 2, "hello", 1, 'world']
list2.pop()
print(list2)
c 运行结果

在这里插入图片描述

1.2.9 删除元素-删除指定位置的元素

a 语法
pop(删除元素下标)
b 示例代码
list2 = [1, 2, "hello", 1, 'world']
list2.pop(1)
print(list2)
c 运行结果

在这里插入图片描述

1.2.10 修改元素

a 语法
列表名[修改元素所在下标]=修改值
b 示例代码
list2 = [1, 2, 5, 3, [1,6,True,3.11]]
print(f"修改前: {list2}")
list2[4][2]="hello world"
print(f"修改后: {list2}")
c 运行结果

在这里插入图片描述

1.3 实战练习

1.3.1 题目要求

希望做一个商品信息录入系统,有以下几大要求
① 初始的界面如下所示:
-------欢迎使用当前系统--------
1.录入商品
2.查询商品
3.退出系统
② 录入商品的界面如下所示:
请输入商品的名称: xxx
请输入商品的成本价:xxx
请输入商品的产地:xxx
请输入商品的生产日期:xxx
③可以循环录入商品
④当多次录入商品后,查询商品界面显示所有录入的商品信息(以列表的形式)

1.3.2 示例代码

print("-------欢迎使用当前系统--------")
projects=[] # 定义一个最外层的列表,用来保存多条商品数据。为了解决新复制一个列表就把其覆盖掉的问题

while True:
    option = input("1.录入商品\n2.查询商品\n3.退出系统\n请输入您的选择:")
    if option == "1":
        # 1.录入商品
        print("--->准备开始录入商品<---")
        pro_list = []  # 定义一个空列表,用来存储单条数据
        load_name=input("请输入商品的名称:")
        pro_list.append(load_name)
        price=input("请输入商品的成本价:")
        pro_list.append(price)
        s_value=input("请输入商品的产地: ")
        pro_list.append(s_value)
        data_time=input("请输入商品的生产日期:")
        pro_list.append(data_time)
        projects.append(pro_list)
        # print(pro_list)
    elif option == "2":
       # "2.查询商品"
        print(projects)
    elif option == "3":
        print("3.退出系统")
    else:
        print("输入有误!!!")

1.3.3 运行截图

在这里插入图片描述

2 字典

2.1 定义

①具有键值对映射关系的一组无序(没有下标)的数据集合
②通过key找对应的value
③标识符:{}  #里面写的都是json数据格式,key一般都是str类型
④关键字: dict
⑤字典定义语法如下
字典名={
    key1:value1,
    key2:value2
}

2.2 相关方法

2.2.1 统计字典中key的个数

a 语法
len(字典名)
b 示例代码
dict1 = {
    "book_name": "平凡的世界",
    "book_author": "路遥",
    "book_role": ["孙少安", "孙少平", "田晓霞", "田润叶", "孙玉厚", "田福堂"]
}
print(len(dict1))
c 运行截图

在这里插入图片描述

2.2.2 新增字典值

a 语法
字典的变量名["字典中不存在的key"]=新增值
#加在最后面
b 示例代码
dict1 = {
    "book_name": "平凡的世界",
    "book_author": "路遥",
    "book_role": ["孙少安", "孙少平", "田晓霞", "田润叶", "孙玉厚", "田福堂"]
}
print(f"新增前:{dict1}")
dict1["book_honor"]="第三届茅盾文学奖"
print(f"新增后:{dict1}")
c 运行截图

在这里插入图片描述

2.2.3 修改字典值

a 语法
字典的变量名["字典中存在的key"]=修改值
b 示例代码
dict1 = {
    "book_name": "平凡的世界",
    "book_author": "路遥",
    "book_role": ["孙少安", "孙少平", "田晓霞", "田润叶", "孙玉厚", "田福堂"]
}
print(f"修改前:{dict1}")
dict1["book_role"][1]="金波"
print(f"修改后:{dict1}")
c 运行截图

在这里插入图片描述

2.2.4 删除指定字典值

a 语法
字典名.pop(key)
b 示例代码
dict1 = {
    "book_name": "平凡的世界",
    "book_author": "路遥",
    "book_role": ["孙少安", "孙少平", "田晓霞", "田润叶", "孙玉厚", "田福堂"]
}
print(f"删除前:{dict1}")
dict1.pop("book_role")
print(f"删除后:{dict1}")
c 运行截图

在这里插入图片描述

2.2.5 清空字典所有值

a 语法
字典名.clear()
b 示例代码
dict1 = {
    "book_name": "平凡的世界",
    "book_author": "路遥",
    "book_role": ["孙少安", "孙少平", "田晓霞", "田润叶", "孙玉厚", "田福堂"]
}
print(f"清空前:{dict1}")
dict1.clear()
print(f"清空后:{dict1}")
c 运行截图

在这里插入图片描述

2.3 实战练习

2.3.1 题目要求

希望做一个商品信息录入系统,有以下几大要求
① 初始的界面如下所示:
-------欢迎使用当前系统--------
1.录入商品
2.查询商品
3.退出系统
② 录入商品的界面如下所示:
请输入商品的名称: xxx
请输入商品的成本价:xxx
请输入商品的产地:xxx
请输入商品的生产日期:xxx
③可以循环录入商品
④当多次录入商品后,查询商品界面显示需要查询的商品信息(录入的单条商品信息用列表存储,所有信息用字典存储)

2.3.2 示例代码

print("-------欢迎使用当前系统--------")
products = {}
while True:
    print("1.录入商品\n2.查询指定商品\n3.退出系统")
    choice = input("请输入您的选择:")
    if choice == "1":
        # 录入商品逻辑
        product = []  # 每次重新输入时需要清空该列表
        product.append(input("请输入商品的名称: "))
        product.append(input("请输入商品的成本价: "))
        product.append(input("请输入商品的产地: "))
        product.append(input("请输入商品的生产日期: "))
        products[product[0]] = product
    elif choice == "2":
        # 查询指定商品逻辑
        product_name = input("请输入您要查询的商品名称: ")
        print(f"需要查询的商品信息为: {products[product_name]}")
    elif choice == "3":
        print("系统已关机,欢迎您下此使用")
        break

2.3.3 运行截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1331940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32实现三个小灯亮

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_P…

深度学习中的池化

1 深度学习池化概述 1.1 什么是池化 池化层是卷积神经网络中常用的一个组件&#xff0c;池化层经常用在卷积层后边&#xff0c;通过池化来降低卷积层输出的特征向量&#xff0c;避免出现过拟合的情况。池化的基本思想就是对不同位置的特征进行聚合统计。池化层主要是模仿人的…

Openwrt AP 发射 WiFi 信号

问题 想一次把 OpenWrt 路由器 wifi 问题给解决&#xff0c;完全取代路由器。 使用 倍控的 N5105 设备&#xff0c;有 mPCIe 接口&#xff0c;使用了 intel AX200 无线网卡&#xff0c;支持 2.4G 与 5G。 设置步骤 OpenWrt 镜像 第一次使用的镜像不支持 wifi&#xff0c;在…

Docker知识总结

Docker 学习目标&#xff1a; 掌握Docker基础知识&#xff0c;能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令 能够运用Dockerfile编写创建容器的脚本 能够…

51单片机拆字程序实验

一、实验内容 1.基本要求 熟悉51仿真系统&#xff1b;设计并单步调试&#xff0c;实现将R5中数值&#xff08;初值为本人学号后两位&#xff09;拆分成两位独立的数据分别存于R6,R7中&#xff1b; 2.扩展要求 将R6,R7中的被拆出来的一位HEX数据转换为可显示的ASCII编码&…

Python算法例27 对称数

1. 问题描述 对称数是一个旋转180后&#xff08;倒过来&#xff09;看起来与原数相同的数&#xff0c;找到所有长度为n的对称数。 2. 问题示例 给出n2&#xff0c;返回[&#xff02;11&#xff02;&#xff0c;&#xff02;69&#xff02;&#xff0c;&#xff02;88&#x…

docker构建镜像及项目部署

文章目录 练习资料下载一、docker基础1. 基本概念2. docker常见命令3. 命令别名4. 数据卷 二、docker自定义镜像1. 了解镜像结构2. 了解Dockerfile3. 构建Dockerfile文件&#xff0c;完成自定义镜像 三、网络1. docker常见网络命令2. docker自带虚拟网络3. 自定义网络 四、dock…

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

目录 前言 全局前置路由守卫 全局后置路由守卫 局部路由守卫之path守卫 局部路由守卫之component守卫 前言 本文介绍Vue2最后的知识点&#xff0c;关于vue的路由守卫。也就是鉴权&#xff0c;不是所有的组件任何人都可以访问到的&#xff0c;需要权限&#xff0c;而根据权限…

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a&#xff0c;veristand2020 R4&#xff0c;labview2020 SP…

第1课 配置FFmpeg+OpenCV开发环境

一、配置开发环境 1.下载FFmpegOpenCV开发所用的SDK压缩包&#xff0c;并解压到E:\SDK下&#xff0c;解压后的路径应为&#xff1a;E:\SDK\ffmpeg-sdk\58\x86\dll及E:\SDK\opencv-sdk\340\x86\dll。 2.新建VC项目&#xff0c;名称为demo1&#xff0c;项目类弄为MFC应用程序&a…

2023年浙大城市学院新生程序设计竞赛(同步赛)G

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先想法非常单一&#xff0c;一定是去枚举操作点&#xff0c;然后看它染白和不染的价值差值 也就是说&#xff0c;把一个黑色结点染白之后&#xff0c;对哪些结点的价值会影响 不难想象其实就是操作结点的子树和该点连通的…

嵌入式硬件电路原理图之跟随电路

描述 电压跟随电路 电压跟随器是共集电极电路&#xff0c;信号从基极输入&#xff0c;射极输出&#xff0c;故又称射极输出器。基极电压与集电极电压相位相同&#xff0c;即输入电压与输出电压同相。这一电路的主要特点是&#xff1a;高输入电阻、低输出电阻、电压增益近似为…

C/C++ 连接访问 MySQL数据库

前面我们已经讲述了MySQL的基础使用&#xff0c;现在我们来看一下如何使用语言来操作数据库。在实际开发中&#xff0c;语言连接MySQL是为了能够在编程语言中与MySQL数据库进行交互和操作。大部分情况我们都是通过语言连接MySQL&#xff0c;建立与MySQL数据库的连接&#xff0c…

docker笔记2-docker 容器

docker 容器的运行 docker run 镜像名&#xff1a;版本标签&#xff1a; 创建 启动容器 docker run 镜像名 &#xff0c;如果镜像不存在&#xff0c;则会在线下载镜像。 注意事项&#xff1a; 容器内的进程必须处于前台运行状态&#xff0c;不能后台&#xff08;守护进程运行…

Android UID相关知识

一、UID/PID/GID/GIDS的含义和作用 UID : android中uid用于标识一个应用程序&#xff0c;uid在应用安装时被分配&#xff0c;并且在应用存在于手机上期间&#xff0c;都不会改变。一个应用程序只能有一个uid&#xff0c;多个应用可以使用sharedUserId 方式共享同一个uid&#…

【四】【C语言\动态规划】地下城游戏、按摩师、打家劫舍 II,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

YOLOv8改进 | 主干篇 | 利用SENetV1改进网络结构 (ILSVRC冠军得主)

一、本文介绍 本文给大家带来的改进机制是SENet&#xff08;Squeeze-and-Excitation Networks&#xff09;其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型&#xff0c;而是一个可以和现有的任何一个模型相结合的模块(可以看作是一…

Linux 宝塔mysql莫名其妙数据库不见了恢复数据库

起因&#xff1a;宝塔安装的mysql 线上运行突然表包括库都不见了&#xff0c;想办法恢复数据库 登陆mysql cd /www/server/mysql/binmysql -u root -p查看binlog日志是否打开 show variables like log_%;log_bin如果为 ON 则为开启状态&#xff0c;如果开启了才可以进行下一…

研究论文 2022-Oncoimmunology:AI+癌RNA-seq数据 识别细胞景观

Wang, Xin, et al. "Deep learning using bulk RNA-seq data expands cell landscape identification in tumor microenvironment." Oncoimmunology 11.1 (2022): 2043662. https://www.tandfonline.com/doi/full/10.1080/2162402X.2022.2043662 被引次数&#xff1…

哈希拓展攻击CTF题做法

目录 基础&#xff1a; 盐&#xff08;Salt&#xff09;&#xff1a; 哈希长度拓展攻击&#xff1a; kali下载相关工具hash-ext-attack&#xff1a; hash拓展题目特征&#xff1a; 哈希拓展ctf题&#xff1a; 2023楚慧杯upload_shell 实验吧之让我进去&#xff1a; 前言…