Chapter 03 复合数据类型-1
1.列表
Python内置的一种有序、可变的序列数据类型;
列表的定义:
[ ]括起来的逗号分隔的多个元素组成的序列
列表对象的创建:
(1)直接赋值=
>>> list1 = []#创建一个空列表赋值给list1
>>> list2 = [1,2,3,4,5]#创建一个元素为整数的列表对象list2
>>> list3 = [‘Python’,[6,6,6],5.13]#创建元素为字符串、列表的对象list3;
>>> list4 = [['乔峰','M',35],['东方不败','F',36]] #元素的数据类型可以各不相同
(2)list()函数
list()函数可将可迭代对象的数据转换为列表,如字符串、元组、range对象等
>>> x = list() # 创建一个空列表[ ]
>>> y = list((1,2,3,4,5)) # y的值为 [1, 2, 3, 4, 5]
>>> z = list(range(5)) # z的值为 [0, 1, 2, 3, 4]
>>> s = list(‘Python’) # s的结果为['P', 'y', 't', 'h', 'o', 'n']
Tips:append()和extend()方法属原地操作,不改变列表在内存的起始地址
列表的主要操作:
元素的增、删、改、查
增加列表元素:列表元素增加或删除时,列表对象自动进行扩展或收缩内存。
运算符“+” ,不建议!
>>> l1 = [1,2,3]
>>> l1 = l1+[10] #创建新列表,非在l1后增加元素
>>> l1 #还记得基于值的内存管理方式吗?
[1, 2, 3, 10]
列表对象的append()方法
append()方法在列表尾部增加元素,类型任意
>>> x = [ ] #append()方法只能有一个参数
>>> x.append(‘乔峰’) # 增加字符串元素
>>> x.append([1999,7,7]) # ['乔峰', [1999, 7, 7]]
列表对象的extend()方法
extend()方法将另一个迭代对象的所有元
素添加至该列表对象尾部
>>> x.extend(['M',35])
>>> x
['乔峰', [1999, 7, 7], 'M', 35]
增加列表元素:列表元素增加或删除时,列表对象自动进行扩展或收缩内存。
列表对象的insert()方法:涉及插入位置之后所有元素的移动,影响速度;
insert()方法将元素添加至列表的指定位置
>>> l1 = [1,2,4,5]
>>> l1.insert(2,3)# 在下标为2的位置插入元素3
>>> x
[1,2,3,4,5]
>>> x.insert(2,[2.5,2.6])
>>> x
[1, 2, [2.5,2.6], 3, 4, 5]
乘法*扩展列表对象。
*复制列表元素,生成一个新列表
>>> x = [1,2,3]*3
>>> x
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> y = [1,[2,3]]*2
>>> y
[1, [2, 3], 1, [2, 3]]
列表的主要操作:元素的增、删、改、查
删除列表元素:
del命令
del命令可以删除列表元素,也可删除整个列表对象
>>> x = ['乔峰', [1999, 7, 7], 'M', 35]
>>> del x[1] #删除下标索引为1的元素:[1999, 7, 7]
>>> del x #删除整个列表
列表对象的pop()方法
pop()方法删除并返回指定(默认为最后一个)位置
上的元素,若位置索引超出范围则抛出异常。
>>> x = ['乔峰', [1999, 7, 7], 'M', 35]
>>> age = x.pop() # ['乔峰', [1999, 7, 7], 'M']
>>> birth = x.pop(1) # ['乔峰', 'M']
列表对象的remove()方法
remove()方法删除首次出现的指定元素,若
列表中不存在指定元素,则抛出异常。
>>> birth.remove(7)
>>> birth
[1999, 7]
列表的主要操作:元素的增、删、改、查
获取列表元素:
下标索引的方式访问单个元素;
切片方式:
Object [ start : end : step ] IndexError: list index out of range
>>> x = ['乔峰', [1999, 7, 7], 'M', 35]
>>> name = x[0] # name值为:'乔峰' >>>> x[-1] = 40
>>> x
['乔峰', [1999, 7, 7], 'M', 40]
列表、元组和字符串均支持双向索引
切片详解
适用于可用于列表、元组、字符串、range对象等
Object [ start : end : step ],切片操作不会因为下标越界而抛出异常,代码更健壮
>>> aList = [1, 2 3, 4, 5, 6, 7, 8, 9, 10]
>>> aList[ : : ] #返回包含所有元素的新列表
>>> aList[::-1] #逆序的所有元素
>>> aList[::2] #偶数位置,隔一个取一个
>>> aList[1::2] #奇数位置,隔一个取一个
>>> aList[3::] #从下标3开始的所有元素
>>> aList[3:6] #下标在[3, 6)之间的所有元素
>>> aList[0:100] #前100个元素,下标越界,自动截断
>>> aList[100:] #下标100之后的所有元素,越界,自动截断,返回空列表[ ]
列表的主要操作:元素的增、删、改、查
列表相关查询:
(1)index()方法获取指定元素首次出现的下标
(2)count()方法统计指定元素在列表对象中出现的次数
(3)“in”关键字来判断一个值是否存在于列表中,返回结果为“True”或“False”
>>> x= ['zhang','xu','乔峰']
>>> x.index('乔峰’)
2
列表的主要操作:元素的增、删、改、查
基于下标索引和切片,可直接使用赋值语句修改列表元素值
>>> x = ['乔峰', [1999, 7, 7], 'M', 35, 1.83]
>>> x[-2] = 40 #修改年龄为40,结果为['乔峰', [1999, 7, 7], 'M', 40, 1.83]
>>> x[:2] = [‘东方’,[1966,6,6]] #替换前两个元素,结果为['东方', [1980, 6, 6], 'M', 40, 1.83]
>>> x[:2:-1] = [1.75,54] #逆序替换后两个元素!结果为['东方', [1980, 6, 6], 'M', 54, 1.75]
>>> x[1:3] = [ ] #删除下标1到3的3个元素,结果为[‘东方', 54,1.75]
>>> del x[::2] #删除下标位置为偶数的元素,结果为[54]
与列表统计或操作相关的其他内置函数和列表方法
编写.py代码,实现以下功能:
1.石头、剪刀、布人机大战游戏
人类通过输入1,2,3分别代表出石头、剪刀和布;
计算机随机出石头、剪刀和布手势;
判断谁赢了并给出结果。
Tips:
可将石头、剪刀、布放在一个列表中;
可将所有人胜的情况列举出并放在一个列表中,即当人出石头、剪刀、布而计算机出剪刀、
布和石头时,人赢;不在上述三种情况的,机器赢。
使用random库进行随机操作。
编写.py代码,实现以下功能:
模拟用户登录系统和相关操作:
1. 建立用户名列表user,用户包括:admin, root, guest
2. 建立用户的密码列表pwd,对应密码为:admin, 123, 456
3. 输入一个用户名,如果存在该用户,则继续输入密码;如果不存在该用
户,则显示:该用户不存在。密码正确,显示‘登录成功’;密码不正确,提
示密码错误;[登录成功后,可修改密码]。
4. root用户登录成功后,可以对用户增、删。
列表推导式(解析式) list comprehension
优雅神奇的列表生成方式,适用于字典、集合等可迭代结构
将for循环压缩成一行代码,生成列表、字典或集合等可迭代数据结构(iterables)
相关文章:

Chapter 03 复合数据类型-1
1.列表 Python内置的一种有序、可变的序列数据类型; 列表的定义: [ ]括起来的逗号分隔的多个元素组成的序列 列表对象的创建: (1)直接赋值 >>> list1 []#创建一个空列表赋值给list1 >>> list…...
【Python知识】Python面向对象编程知识
Python面向对象编程知识 概述1. 类(Class)2. 对象(Object)3. 封装(Encapsulation)4. 继承(Inheritance)5. 多态(Polymorphism)6. 抽象(Abstractio…...

CSharp: Oracle Stored Procedure query table
存储过程查询postgreSQL,Oracle 和sql server,Mysql 有区别。程序调用也是有区别。 oracle sql script: CREATE OR REPLACE PROCEDURE procSelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId p…...

“协同过滤技术实战”:网上书城系统的设计与实现
2.1 JSP技术介绍 Java Server Pages这三个英文词汇的首字母的组合就是JSP。所以JSP是一个简写的名字,代表动态网页开发技术。JSP与Java的关系可以使用公式表示,即:JSP HTMLJava,HTML就是编写静态内容的标记语言。JSP则是可以编写网…...
Dhatim FastExcel 读写 Excel 文件
Dhatim FastExcel 读写 Excel 文件 一、说明1、主要特点2、应用场景 二、使用方法1、引入依赖2、Sheet 数据3、读取 Excel4、写入 Excel 一、说明 Github 地址:Dhatim FastExcel Dhatim FastExcel是一个高性能、轻量级的Java库,专门用于读取和写入Exce…...

YOLO11全解析:从原理到实战,全流程体验下一代目标检测
前言 一、模型介绍 二、网络结构 1.主干网络(Backbone) 2.颈部网络(Neck) 3.头部网络(Head) 三、算法改进 1.增强的特征提取 2.优化的效率和速度 3.更高的准确性与更少的参数 4.环境适应性强 5.…...
深度学习领域的主要神经网络架构综述
阅读本文前请先按照顺序阅读: Coursera吴恩达《神经网络与深度学习》课程笔记(1)-- 深度学习概述_吴恩达深度学习课程-CSDN博客 https://blog.csdn.net/red_stone1/article/details/77799014 完结篇 | 吴恩达deeplearning.ai专项课程精炼笔…...
【Nginx系列】---Nginx配置tcp转发
参考 Nginx 配置文件: error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 1024; }stream {# 第一个服务转发upstream mysqltest {server 172.16.187.142:9000;}server {listen 9000;proxy_pass mysqltest;}…...
Java抽象工厂+单例模式
在前端时间开发过程中,有这样一个业务场景:A;B两家厂商设备进行设备信息的同步功能。 根据实际场景,做了抽象工厂+单例模式实现调用工厂时,生成不同的具体业务引用对象,实现方法的调用。 概念: 抽象工厂模式通过接口或抽象类来创建一系列相关或依赖对象。它定义了一组工…...
后端接口设计
一、基本规范 1.URL设计 应遵循RESTful风格,使用动词名词的方式描述接口的功能。应简洁明了,易于理解和记忆。 2.请求协议及方法 使用HTTPS协议进行数据传输,保证数据在传输过程中的安全性。如无特殊情况,统一使用post方法。 …...

Docker部署Sentinel
一、简介 是什么:面向分布式、多语言异构化服务架构的流量治理组件 能干嘛:从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性 官网地址:https://sentinelguard.io/zh-c…...

真实环境下实车运行,新能源汽车锂离子电池数据集
引言 锂离子电池(Lithium-ion Batteries,LiBs)已经作为电动汽车核心动力源,其性能直接关系到系统的性能和使用安全。为确保锂电池的安全使用,需要对锂电池的状态进行精确的估计,包括荷电状态(State of Charge, soC)、健康状态(St…...

【求职面试】驾照的种类
大型客车 A1 大型载客汽车 A3、B1、B2、C1、C2、C3、C4、M 牵引车 A2 重型、中型全挂、半挂汽车列车 B1、B2、C1、C2、C3、C4、M 城市公交车 A3 核载10人以上的城市公共汽车 C1、C2、C3、C4 中型客车 B1 中型载客汽车(10人以上、19人以下) C1、C2、C3…...

centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
在 CentOS 系统中,权限管理是操作系统的核心功能之一,确保不同用户和进程对文件、目录以及设备的访问被合理控制。 权限系统主要包括传统的 Unix 权限模型、特殊权限(SetUID、SetGID、Sticky 位)和更精细的访问控制列表ÿ…...

AI Agent案例全解析:百度营销智能体(8/30)
引言:在当今这个科技飞速发展的时代,AI技术呈现出爆发式的增长,正以前所未有的态势改变着众多行业的发展轨迹,营销领域也不例外。随着市场竞争的日益激烈,传统营销模式逐渐显露出疲态,对于变革的需求愈发迫…...
hive常用函数有哪些
Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的接口,用于数据查询和分析。Hive提供了许多内置函数,这些函数可以分为几种类型,包括: • 字符串函数:用于处理字符串数据。 • concat()࿱…...
【Python高级353】python实现多线程版本的TCP服务器
前面学了了套接字编程、tcp服务端客户端开发、面向对象版的服务端客户端、带有端口复用的服务端。 这里使用多线程开发多任务版的服务端 多任务版本的TCP服务器 来一个客户,就为其创建一个线程 import socket import threadingclass WebServer:# 3、定义一个__ini…...

分布式调度框架学习笔记
一、分布式调度框架的基本设计 二、线程池线程数量设置的基本逻辑 cpu是分时复用的方法,线程是cpu调度的最小单元 如果当前cpu核数是n,计算密集型线程数一般设为n,io密集型(包括磁盘io和网络io)线程数一般设置为2n. 计算密集型线程数一般设…...

SpringCloudAlibaba技术栈-Nacos
1、什么是Nacos? Nacos是个服务中心,就是你项目每个功能模块都会有个名字,比如支付模块,我们先给这个模块起个名字就叫paymentService,然后将这个名字和这个模块的配置放到Nacos中,其他模块也是这样的。好处是这样能更好地管理项…...

Redis篇--常见问题篇4--大Key(Big Key,什么是大Key,影响及使用建议)
1、概述 大Key:通常是指值(Value)的长度非常大,实际上键(Key)长度很大也算。通常来说,键本身不会很长,占用的内存较少,因此判断一个键是否为bigKey主要看它对应的值的大…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...