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

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 运行截图

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

渗透实验 XSS和SQL注入(Lab3.0)

windows server2003IIS搭建 配置2003的虚拟机 1、利用AWVS扫描留言簿网站&#xff08;安装见参考文档0.AWVS安装与使用.docx&#xff09;&#xff0c;发现其存在XSS漏洞&#xff0c;截图。 2、 Kali使用beef生成恶意代码 cd /usr/share/beef-xss./beef执行上面两条命令 …

echarts显示N条折线图DEMO

1、代码 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Echarts折线图</title> </head> <body> <div id"main" style"width: 600px;height:400px;"></div> <sc…

Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创

一、前言 能够写出简单易用而又不失功能强大的组件&#xff0c;一直是我的追求&#xff0c;简单主要体现在易用性&#xff0c;不能搞一些繁琐的流程和一些极难使用的API接口&#xff0c;或者一些看不懂的很难以理解的函数名称&#xff0c;一定是要越简单越好。功能强大主要体现…

在做题中学习(39):盛最多水的容器

11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; 解释&#xff1a;因为木桶原理&#xff0c;能否盛最多的水是由最短的一块板决定的&#xff0c;所以容纳水的公式为&#xff1a;v 两个数下标之差 * 短板高度。 思路&#xff1a;最优解法&#xff08;双指针法&…

房顶漏水啦【算法赛】

问题描述 小蓝家的房顶是一个边长为 n 的正方形&#xff0c;可以看成是由 nn 个边长为 1 的小正方形格子组成。 从上到下第 i 行、从左到右第 j 列的格子用 (i,j) 表示。 小蓝的家由于年久失修&#xff0c;导致房顶有一些地方漏水。总共有 m 处漏水的地方&#xff0c;我们用…

java之Druid连接池介绍和使用方法 简单易懂

文章目录 一、什么是数据库连接池&#xff1f;二、 为什么选择Druid连接池&#xff1f;三、连接池的jar包四、连接池的使用1、配置及使用配置文件连接mysql数据库2、使用Map集合使用Druid 五、总结 一、什么是数据库连接池&#xff1f; 数据库连接池是一个存储数据库连接的缓冲…

银河麒麟v10 rpm安装包 安装mysql 8.35

银河麒麟v10 rpm安装包 安装mysql 8.35 1、卸载mariadb2、下载Mysql安装包3、安装Mysql 8.353.1、安装Mysql 8.353.3、安装后配置 1、卸载mariadb 由于银河麒麟v10系统默认安装了mariadb 会与Mysql相冲突&#xff0c;因此首先需要卸载系统自带的mariadb 查看系统上默认安装的M…

红队打靶练习:DIGITALWORLD.LOCAL: MERCY V2

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 6、总结 目录探测 1、gobuster 2、dirsearch WEB enum4linux枚举工具 smbclient工具 knock工具 CMS 文件包含漏洞 Tomcat 提权 系统信息收集 本地提权 get root 信息收集 1、arp ┌──…

天文与计算机:技术的星辰大海

天文与计算机&#xff1a;技术的星辰大海 一、引言 在人类的历史长河中&#xff0c;天文学与计算机技术这两个领域似乎相隔甚远&#xff0c;然而在科技的推动下&#xff0c;它们却逐渐走到了一起&#xff0c;为人类对宇宙的探索开辟了新的道路。天文观测的复杂度与数据量随着…

C++面向对象(OOP)编程-STL详解(vector)

本文主要介绍STL六大组件&#xff0c;并主要介绍一些容器的使用。 目录 1 泛型编程 2 CSTL 3 STL 六大组件 4 容器 4.1 顺序性容器 4.1.1 顺序性容器的使用场景 4.2 关联式容器 4.2.1 关联式容器的使用场景 4.3 容器适配器 4.3.1 容器适配器的使用场景 5 具体容器的…

Java经典框架之Spring

Java经典框架之Spring Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Spring简介 2.…

20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞

20231220将NanoPC-T4(RK3399)开发板的Android10的SDK按照Rockchip官方挖掘机开发板编译打包刷机之后启动跑飞 2023/12/20 17:19 简略步骤&#xff1a;rootrootrootroot-X99-Turbo:~/3TB$ tar --use-compress-programpigz -xvpf rk3399-android-10.git-20210201.tgz rootrootro…

HarmonyOS4.0系统性深入开发02 UIAbility组件详解(上)

UIAbility组件概述 概述 UIAbility组件是一种包含UI界面的应用组件&#xff0c;主要用于和用户交互。 UIAbility组件是系统调度的基本单元&#xff0c;为应用提供绘制界面的窗口&#xff1b;一个UIAbility组件中可以通过多个页面来实现一个功能模块。每一个UIAbility组件实例…

智能优化算法应用:基于爬行动物算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于爬行动物算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于爬行动物算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.爬行动物算法4.实验参数设定5.算法结果6.…

Android Canvas画布saveLayer与对应restoreToCount,Kotlin

Android Canvas画布saveLayer与对应restoreToCount&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.heigh…

【数据结构一】初始Java集合框架(前置知识)

Java中的数据结构 Java语言在设计之初有一个非常重要的理念便是&#xff1a;write once&#xff0c;run anywhere&#xff01;所以Java中的数据结构是已经被设计者封装好的了&#xff0c;我们只需要实例化出想使用的对象&#xff0c;便可以操作相应的数据结构了&#xff0c;本篇…

数值分析期末复习

第一章 科学计算 误差 解题步骤 先求绝对误差: ∣ x − x ∗ ∣ |x - x^*| ∣x−x∗∣求相对误差限: ∣ x − x ∗ ∣ x ∗ \frac{|x\,\,-\,\,x^*|}{x^*} x∗∣x−x∗∣​求有效数字 ∣ x − x ∗ ∣ 需要小于它自身的半个单位 |x-x^*|\text{需要小于它自身的半个单位} ∣…

qt简单连接摄像头

要使用摄像头&#xff0c;就需要链接多媒体模块以及多媒体工具模块 需要在.pro文件中添加QT multimedia multimediawidgets 是用的库文件 QCamera 类用于打开系统的摄像头设备&#xff0c; QCameraViewfinder 用于显示捕获的视频&#xff0c; QCameraImageCapt…

3D 纹理贴图基础知识

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 纹理贴图是创建模型时离不开的最后一块拼图。同样&#xff0c;…

陈可之|三峡|《河水不犯井水的游戏》

《河水不犯井水的游戏》 尺寸&#xff1a;130x90cm 陈可之2007年绘 油画《河水不犯井水的游戏》是陈可之先生三峡系列作品之一&#xff0c;巧借古代传说&#xff0c;并具象化为螃蟹、乌龟、长江水&#xff0c;描绘了一幅和谐共生的画面。 画面右侧&#xff0c;蜿蜒宽阔的长江水…