2024速通python之python进阶

文章目录

  • 一、数据容器
    • 1.list列表
      • (1)定义
      • (2)常用方法
    • 2.元组
      • (1)定义
    • 3.字符串常用操作汇总
      • (1)根据下标索引取出特定位置字符
      • (2)查找给定字符的第一个匹配项的下标
      • (3)将字符串内的全部字符串1,替换为字符串2
      • (4)按照给定字符串,对字符串进行分隔
      • (5)移除首尾的空格和换行符或指定字符串
      • (6)统计字符串内某字符串的出现次数
    • 4.序列
    • 5.集合
      • (1)定义
      • (2)常用方法
    • 6.字典
      • (1)定义
      • (2)常用方法
  • 二、函数
    • 1.函数多返回值
    • 2.函数多种传参方式
      • (1)位置参数
      • (2)关键字参数
      • (3)缺省参数
      • (4)不定长参数
    • 3.lambda匿名函数

「章节总览」
 
      【2024速通python之python基础 https://blog.csdn.net/weixin_45404884/article/details/138578955】
      【2024速通python之python进阶 https://blog.csdn.net/weixin_45404884/article/details/138663338】
      【2024速通python之python高阶 https://blog.csdn.net/weixin_45404884/article/details/138810133】

一、数据容器

1.list列表

(1)定义

name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
print(name_list)# 将列表遍历输出
for name in name_list:print(name)# 输出name_list类型
print(type(name_list))

(2)常用方法

  • 按下标索引
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
print(name_list[0])
  • 反向索引
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
print(name_list[-4])
  • 查找某元素下标
print(name_list.index('wangwu'))
  • 指定位置插入元素
    列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
name_list.insert(1, 'sss')
print(name_list)
  • 追加元素
    列表.append(元素),将指定元素,追加到列表的尾部
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
name_list.append('sss')
print(name_list)

列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部

name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
other_list = ['sss', 'ddd']
name_list.extend(other_list)
print(name_list)
  • 删除元素
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
# 方式一
del name_list[0]
# 方式二
name_list.pop(0)
print(name_list)
  • 删除某元素在列表中的第一个匹配项
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
name_list.remove('lisi')
print(name_list)
  • 清空列表
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
name_list.clear()
print(name_list)
  • 统计某元素在列表内的数量
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
print(name_list.count('lisi'))
  • 列表长度
name_list = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
print(len(name_list))

2.元组

元组一旦定义完成,就不可修改

(1)定义

name_list = ('zhangsan', 'lisi', 'wangwu', 'zhaoliu', 'lisi')
print(name_list)

3.字符串常用操作汇总

(1)根据下标索引取出特定位置字符

name = 'hello world'
print(name[0])

(2)查找给定字符的第一个匹配项的下标

name = 'hello world'
print(name.index('h'))

(3)将字符串内的全部字符串1,替换为字符串2

name = 'hello world'
newName = name.replace('world', 'city')
print(newName)

(4)按照给定字符串,对字符串进行分隔

name = 'hello world'
newName = name.split(' ')
print(newName)

(5)移除首尾的空格和换行符或指定字符串

name1 = ' hello world '
name2 = '12hello world21'
newName1 = name1.strip(' ')
newName2 = name2.strip('12')
print(newName1)
print(newName2)

(6)统计字符串内某字符串的出现次数

name1 = 'hello world'
print(name1.count('o'))

4.序列

序列是指:内容连续、有序,可使用下标索引的一类数据容器。
列表、元组、字符串,均可以可以视为序列。
序列支持切片,即:列表、元组、字符串,均支持进行切片操作。
切片:从一个序列中,取出一个子序列。
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列。

  • 起始下标表示从何处开始,可以留空,留空视作从头开始
  • 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
  • 步长表示,依次取元素的间隔
  • 步长1表示,一个个取元素
  • 步长2表示,每次跳过1个元素取
  • 步长N表示,每次跳过N-1个元素取
  • 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4]	# 下标1开始,下标4(不含)结束,步长1
print(new_list)		# 结果:[2, 3, 4]my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2]		# 从头开始,到最后结束,步长2
print(new_list)		# 结果:[1, 3, 5]

5.集合

去重且无序

(1)定义

my_list = {1, 2, 3, 4, 5}
print(my_list)

(2)常用方法

  • 集合内添加一个元素
my_list = {'1', '2', '3', '4', '5'}
my_list.add('111')
print(my_list)
  • 移除集合内指定的元素
my_list = {'1', '2', '3', '4', '5'}
my_list.remove('3')
print(my_list)
  • 随机取出一个元素
my_list = {'1', '2', '3', '4', '5'}
print(my_list.pop())
  • 清空
my_list = {'1', '2', '3', '4', '5'}
my_list.clear()
print(my_list)
  • 2个集合的差集
my_list1 = {'1', '2', '3', '4'}
my_list2 = {'2', '3', '4', '5'}
my_list3 = my_list1.difference(my_list2)
print(my_list3)
  • 2个集合的并集
my_list1 = {'1', '2', '3', '4'}
my_list2 = {'2', '3', '4', '5'}
my_list3 = my_list1.union(my_list2)print(my_list3)

6.字典

(1)定义

字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法:
{key:value}
字典内Key不允许重复,重复添加等同于覆盖原有数据

my_dict = {1: 'one', 2: 'two', 3: 'three'}
print(my_dict)

(2)常用方法

  • 获取字典的全部Key,可用于for循环遍历字典
my_dict = {1: 'one', 2: 'two', 3: 'three'}
print(my_dict.keys())
  • 取出Key对应的Value并在字典内删除此Key的键值对
my_dict = {1: 'one', 2: 'two', 3: 'three'}
my_dict.pop(1)
print(my_dict)

二、函数

1.函数多返回值

  • 按照返回值的顺序,写对应顺序的多个变量接收即可
  • 变量之间用逗号隔开
def test():return "a", 1x, y = test()
print(x)
print(y)

2.函数多种传参方式

(1)位置参数

调用函数时根据函数定义的参数位置来传递参数

def test(x, y):print('x====', x)print('y====', y)test(1, 2)

(2)关键字参数

函数调用时通过“键=值”形式传递参数
** kwargs 表示关键字参数, 它本质上是一个 dict

def test(**kwargs):print(kwargs)test(x=1, y=2, z=3, a=4)

(3)缺省参数

不传值,默认z赋值为1

def test(x, y, z=1):print(x)print(y)print(z)test(1, 2)
test(1, 2, 3)

(4)不定长参数

*args 表示任何多个无名参数, 他本质上是一个 tuple

def test(*args):print('x====', args)test(1, 2)

3.lambda匿名函数

  • lambda 传入函数 :函数体(一行代码)

  • 匿名函数用于临时构建一个函数,只用一次的场景

  • 匿名函数的定义中,函数体只能写一行代码,如果函数体要写多行代码,不可用lambda 匿名函数,应使用def定义带名函数

def test(compute):result = compute(1, 2)print(result)test(lambda x, y: x + y)

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

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

相关文章

三:哈希map day6 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

今日任务 ● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数 ● 1. 两数之和 今日任务 242.有效的字母异位词 题目 大型概括:map 的使用 1.题目描述-->思路: 给出两个string s,t; …

Android Update Engine 分析(二十九)如何进行连续多个版本的升级?

本文为洛奇看世界(guyongqiangx)原创,转载请注明出处。 原文链接:https://blog.csdn.net/guyongqiangx/article/details/138849767 0. 背景 关于如何连续进行多个版本升级,这是一个很常见的需求,也是 OTA 讨论群里试不试就会讨论的一个话题。 例如,昨天一个小伙伴在群里…

a-auto-complete 请求后端数据做模糊查询,解决下拉框选择选不上,不回显的问题

a-auto-complete 请求后端数据做模糊查询,解决下拉框选择选不上,不回显的问题 记录一个a-auto-complete卡bug卡了两天,找不到哪里的问题下拉框选择选不上,不回显,最后终于解决了。 我还对下拉框显示的内容做了小调整。…

MYSQL数据库默认的系统库详解

文章目录 [TOC](文章目录) MYSQL数据库默认的系统库详解1、information_schema(数据库)2、mysql3、performance_schema (性能库)4、sys MYSQL数据库默认的系统库详解 1、information_schema(数据库) 1、记录了用户、表、视图等元数据信息。这个库是虚拟…

越来越真的Deepfake再次引起网安界的关注

当地时间5月6日,全球网络安全领域最受关注的年度盛会 RSAC 2024在美国旧金山隆重开幕。当天,被誉为“安全圈奥斯卡”的创新沙盒大赛也决出了冠军,Reality Defender凭借其创新性的深度伪造(Deepfake)检测平台摘得桂冠&a…

【漏洞复现】泛微OA E-Cology users.data信息泄露漏洞

漏洞描述: 泛微OA E-Cology是一款面向中大型组织的数字化办公产品,它基于全新的设计理念和管理思想,旨在为中大型组织创建一个全新的高效协同办公环境。泛微OA E-Cology users.data存在敏感信息泄露漏洞,攻击者利用此漏洞可以获取…

Excel 根据包含的关键词将指定列按关键词指定顺序排列

例题描述和简单分析 有 Excel 文件,数据如下所示: AB1Parent ColumnModifier (Column)2Jack lives in the villageRose3As mentioned by jackVillage4Rose already spoke to jack about last nightJack5Rose left the village6rose was their yesterda…

DigitalOcean 应用托管更新:应用端到端运行时性能大幅改进

DigitalOcean 希望可以为企业提供所需的工具和基础设施,以帮助企业客户加速云端的开发,实现业务的指数级增长。为此 DigitalOcean 在 2020 年就推出了App Platform。 App Platform(应用托管) 是一个完全托管的 PaaS 解决方案&…

ubuntu下使用docker安装kafka

1.先安装zookeeper docker run -d --restartalways -e ALLOW_ANONYMOUS_LOGINyes --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime bitnami/zookeeper:latest 2.安装kafka docker run…

Docker 的 Ubuntu 操作系统镜像

Debian 和 Ubuntu 都是目前较为流行的 Debian 系列 的服务器操作系统,十分适合研发场景。 Debian 和 Ubuntu 属于同一系列的发行版。Debian 是由 Ian Murdock 在 1993 年创建的最初的发行版。Ubuntu 是 Mark Shuttleworth 在 2004 年基于 Debian 创建的发行版。 Li…

2024 National Invitational of CCPC (Zhengzhou)(CCPC郑州邀请赛暨CCPC河南省赛)

2024 National Invitational of CCPC (Zhengzhou) 2024CCPC郑州邀请赛暨CCPC河南省赛 2024 National Invitational of CCPC (Zhengzhou) B. 扫雷 1 题意:扫n轮雷,每轮开始获得一枚扫雷币,可保存,从第一轮开始,可以…

27.C++的类型转换(介绍了static_cast、reinterpret_cast、const_cast、dynamic_cast的用法)

1. C语言中的类型转换 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换…

JavaScript中的call、apply和bind方法(2)

JavaScript中的call、apply和bind方法是用于改变函数执行上下文和预先设置参数的强大工具。它们在编写可维护和优雅的代码时起到了重要的作用。本文将介绍这些方法的原理和使用场景,并展示如何将它们应用于你的代码中,使其更加漂亮。 call方法的原理和使…

STM32 CANFD 基础知识留档

讲得比较细的文章但可能有问题自行判定 附1 附2 前言 CAN2.0 协议中数据段波特率和仲裁段波特率默认是一致,因此只需要关注传输波特率即可 CANFD 协议是向下兼容 CAN2.0 的数据通讯,因此实际使用中需要配置 STM32H7 系列支持的标准是 Compliant with …

大语言模型中上下文长度扩展技术的内容、原因和方式-综述

24年1月阿联酋科技创新研究院、孟加拉国伊斯兰科技大学、斯坦福大学、亚马逊公司和南卡大学AI研究院的论文“The What, Why, and How of Context Length Extension Techniques in Large Language Models – A Detailed Survey“。 LLM通常面临上下文长度外推方面的限制。 理解…

C++11 线程池:轻量级高并发解决方案

C11 线程池:轻量级高并发解决方案 线程池(Thread Pool)是一种线程管理的机制,它包含了多个预先创建的线程,用于执行多个任务,这些任务被放入任务队列中等待执行。 满足我们的生产者和消费者模型。 线程…

一文带你快速了解GPT-4o!内含免费使用指南!

一、GPT-4o简介 北京时间5月14日,OpenAI举行春季发布会。OpenAI在活动中发布了新旗舰模型“GPT-4o”!据OpenAI首席技术官穆里穆拉蒂(Muri Murati)介绍,GPT-4o在继承GPT-4强大智能的同时,进一步提升了文本、…

常用限流方式

1. 令牌桶算法(Token Bucket) 令牌桶算法是一种常用的限流算法,它通过维护一个固定容量的令牌桶,以限制单位时间内通过的请求数量。当请求到达时,会从令牌桶中获取一个令牌,如果令牌桶中没有令牌&#xff…

如何使用Python进行网页爬取

Python爬虫案例可以有很多种,但我会为你提供一个简单的案例,该案例使用Python的requests库来爬取一个网页的内容,并使用BeautifulSoup库来解析HTML并提取特定的信息。 假设我们要从某个新闻网站(例如:示例网站&#x…

电力场景设备漏油检测数据集VOC+YOLO格式338张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):338 标注数量(xml文件个数):338 标注数量(txt文件个数):338 标注类别…