当前位置: 首页 > news >正文

学会拥抱Python六剑客,提高编程效率

在Python语言中,有六个强大的工具,它们被称为"Python六剑客"。而Python六剑客指的是Python中常用的六种功能强大且灵活的工具,它们分别是“切片(Slicing),推导列表(List Comprehension),map映射函数,filter过滤器,reduce累积,lambda匿名函数”。

接下来,小编将详细解释每个工具,并提供相应的代码示例。

正文

1.切片(Slicing)

切片(Slicing):对于序列(如字符串、列表和元组)来说,切片是一种非常方便的操作。通过指定开始位置、结束位置和步长,可以轻松地提取序列中的子序列。例如,s[开始位置:结束位置:步长]。

在Python中,切片(slicing)是一种非常强大的工具,它允许你对序列类型(如列表、元组、字符串等)进行快速、简洁的子集操作。切片操作通过冒号(:)分隔的三个可选参数来指定:起始索引、结束索引和步长。

其基本语法如下所示:

sequence[start:stop:step]

sequence:要进行切片操作的序列,可以是列表、元组或字符串等;

start:切片开始的索引(包含)。如果是负数,则从序列的末尾开始计数。如果省略,则默认为0;

stop:切片结束的索引(不包含)。如果是负数,则从序列的末尾开始计数。如果省略,则默认为序列的长度;

step:切片步长,即每次操作跳过的元素个数。如果省略,则默认为1。如果为负数,则切片操作会从后向前进行。

用法举例如下:

# 字符串切片`  `s = "Hello, World!"`  `print(s[0:5])      # 输出: "Hello"`  `print(s[7:])       # 输出: "World!"`  `print(s[:5])       # 输出: "Hello"`  `print(s[-1])       # 输出: "!"`  `print(s[-6:-1])    # 输出: "World"`  `   ``# 列表切片`  `lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`  `print(lst[2:5])    # 输出: [2, 3, 4]`  `print(lst[::2])    # 输出: [0, 2, 4, 6, 8]`  `print(lst[::-1])   # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]`  `   ``# 元组切片(与列表相同)`  `tup = (10, 20, 30, 40, 50)`  `print(tup[1:4])    # 输出: (20, 30, 40)`  `   ``# 负数索引和步长`  `print(lst[-3:-1])  # 输出: [7, 8]`  `print(lst[::-2])   # 输出: [9, 7, 5, 3, 1]

在切片操作中,如果省略了start,则默认为0;如果省略了stop,则默认为序列的长度;如果省略了step,则默认为1。同时,Python的切片操作是“左闭右开”的,即包含起始索引,不包含结束索引。

切片不仅用于提取子序列,还可以用于修改原序列的部分内容,比如通过切片赋值来替换子序列的元素:

lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`  `lst[2:5] = [20, 30, 40]`  `print(lst)  # 输出: [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]

在上面的例子中,lst中索引2到4(不包含5)的元素被新的列表[20, 30, 40]替换了。

2.推导列表(List Comprehension)

推导列表(List Comprehension):这是一种创建新列表的简洁方法,它通过在一个已有的列表或可迭代对象上进行操作,生成新的列表。例如,[表达式 for 项 in 可迭代对象 if 条件]。

列表推导式(List Comprehension)是Python中一种独特且强大的语法,它允许你以简洁的方式创建列表。列表推导式提供了一种快速构建新列表的方法,通过遍历一个或多个序列,并根据需要应用一些条件或转换。

列表推导式的基本语法如下:

[expression for item in iterable if conditional]

expression:对每个元素执行的表达式(通常是针对单个元素的运算)。

item:在迭代过程中使用的变量名。

iterable:可迭代对象,如列表、元组、字符串或任何实现了迭代协议的对象。

conditional:可选的条件语句,用于过滤元素。如果提供了条件,则只有使条件为真的元素才会被包括在内。

用法举例如下所示:

# 创建一个包含 1 到 10 的平方的列表`  `squares = [x**2 for x in range(1, 11)]`  `print(squares)  # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]`  `   ``# 创建一个包含 0 到 9 的偶数的列表`  `even_numbers = [x for x in range(10) if x % 2 == 0]`  `print(even_numbers)  # 输出: [0, 2, 4, 6, 8]`  `   ``# 创建一个包含字符串列表中所有字符串长度的列表`  `words = ['apple', 'banana', 'cherry']`  `word_lengths = [len(word) for word in words]`  `print(word_lengths)  # 输出: [5, 6, 6]`  `   ``# 创建一个包含元组中所有元素平方的列表`  `tuples = [(1, 2), (3, 4), (5, 6)]`  `squared = [x**2 + y**2 for x, y in tuples]`  `print(squared)  # 输出: [5, 25, 61]`  `   ``# 使用嵌套列表推导式创建一个二维列表`  `matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]`  `flattened = [element for row in matrix for element in row]`  `print(flattened)  # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]

列表推导式不仅简洁,而且执行速度通常比等效的循环和append()方法更快。这是因为列表推导式是在构建列表时就计算出所有元素,而循环和append()方法则需要逐个添加元素到列表中。

列表推导式是Python的一种非常强大的特性,它使得处理列表和其他可迭代对象变得更加容易和高效。

3.map映射函数

map映射函数:map()函数接收两个参数,一个是函数,一个是序列。map将传入的函数依次作用到序列的每个元素,并把结果作为新的列表返回。例如,map(函数, 序列)。

map() 是Python内置的一个高阶函数(higher-order function),它接受一个函数和一个或多个可迭代对象作为参数,并返回一个新的迭代器,该迭代器将函数应用到每个输入可迭代对象的对应元素上。map() 函数在内部迭代可迭代对象,并对每个元素执行提供的函数,然后返回结果的迭代器。

以下是 map() 函数的基本用法:

map(function, iterable, ...)

function:应用于每个元素的函数。

iterable:一个或多个可迭代对象,其中的元素将被作为 function 的参数。

下面是一些使用 map() 函数的例子:

# 定义一个函数,将列表中的每个元素平方`  `def square(x):  ``return x ** 2`  `   ``# 使用 map() 函数将 square 应用到列表的每个元素上`  `numbers = [1, 2, 3, 4, 5]`  `squared_numbers = map(square, numbers)`  `   ``# 注意:map() 返回一个迭代器,如果要打印结果,需要转换为列表或其他可迭代对象`  `print(list(squared_numbers))  # 输出: [1, 4, 9, 16, 25]`  `   ``# map() 也可以接受多个可迭代对象,并将函数应用于它们的对应元素`  `def add(x, y):  ``return x + y`  `   ``# 使用 map() 将 add 应用到两个列表的对应元素上`  `a = [1, 2, 3]`  `b = [4, 5, 6]`  `sums = map(add, a, b)`  `print(list(sums))  # 输出: [5, 7, 9]

在上面的例子中,map() 函数将 square 函数应用到 numbers 列表的每个元素上,并返回一个新的迭代器 squared_numbers。当我们需要看到结果时,将迭代器转换为列表。同样,map() 也可以将 add 函数应用到两个列表 a 和 b 的对应元素上。

需要注意的是,map() 返回的是一个迭代器,如果你需要多次访问结果或者在一个不支持迭代器的上下文中使用结果(例如,在 print() 函数中直接打印),你需要将迭代器转换为列表或其他可迭代对象。这可以通过使用 list()、tuple() 或其他类似函数来实现。

4.filter过滤器

filter过滤器:filter()函数也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。例如,filter(函数, 序列)。

filter() 是Python的一个内置函数,用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。filter() 函数接受两个参数,一个是函数,一个是序列。序列的每个元素作为参数传递给函数进行判定,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

其基本用法如下所示:

filter(function, iterable)

function:用于测试每个元素是否满足条件的函数。

iterable:可迭代对象,如列表、元组或字符串。

下面是一些使用 filter() 函数的例子:

# 定义一个函数,判断一个数是否为偶数`  `def is_even(n):  ``return n % 2 == 0`  `   ``# 使用 filter() 函数过滤出列表中的偶数`  `numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`  `even_numbers = filter(is_even, numbers)`  `   ``# 将 filter 对象转换为列表以打印结果`  `print(list(even_numbers))  # 输出: [2, 4, 6, 8, 10]`  `   ``# filter() 也可以用于字符串,过滤出所有大写字母`  `def is_uppercase(c):  ``return c.isupper()`  `   ``# 使用 filter() 函数过滤出字符串中的大写字母`  `text = "Hello, World!"`  `uppercase_letters = filter(is_uppercase, text)`  `   ``# 将 filter 对象转换为列表以打印结果`  `print(list(uppercase_letters))  # 输出: ['H', 'W']

在上面的例子中,filter() 函数将 is_even 函数应用到 numbers 列表的每个元素上,并返回一个新的迭代器 even_numbers,该迭代器包含所有使 is_even 返回 True 的元素。同样,filter() 也被用于过滤出字符串中的所有大写字母。

需要注意的是,filter() 返回的是一个迭代器,如果你需要多次访问结果或者在一个不支持迭代器的上下文中使用结果(例如,在 print() 函数中直接打印),你需要将迭代器转换为列表或其他可迭代对象。这可以通过使用 list()、Tuple() 或其他类似函数来实现。

5.reduce累积

reduce累积:reduce()函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用func函数运算,以此类推,最后得到一个结果。例如,reduce(函数, 序列)。

在Python中,reduce() 函数是 functools 模块的一部分,用于对参数序列中元素进行累积。reduce() 函数会对参数序列中元素进行下列操作:对参数序列中元素进行下列操作:用传给 reduce() 中的函数 func(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 func 函数运算,以此类推,最后得到一个结果。

下面是一个使用 reduce() 进行累积操作的例子:

from functools import reduce`  `   ``# 定义一个函数,用于将两个数相加`  `def add(x, y):  ``return x + y`  `   ``# 定义一个数字列表`  `numbers = [1, 2, 3, 4, 5]`  `   ``# 使用 reduce 对列表中的数字进行累积相加`  `sum_of_numbers = reduce(add, numbers)`  `   ``print(sum_of_numbers)  # 输出: 15

在这个例子中,reduce(add, numbers) 会执行以下操作:

add(1, 2) -> 3

add(3, 3) -> 6

add(6, 4) -> 10

add(10, 5) -> 15

最终,reduce() 函数返回累积相加的结果15。

需要注意的是,在Python3 中,reduce() 不再是内置函数,而是位于 functools 模块中,因此你需要导入这个模块才能使用它。在Python2中,reduce() 是一个内置函数。

6.lambda匿名函数

lambda匿名函数:lambda函数是一种小型匿名函数,可以接受任何数量的参数,但只能有一个表达式。lambda函数的语法是lambda 参数: 表达式。

在Python中,lambda 是一个关键字,用于定义匿名函数(也称为一行函数或内联函数)。匿名函数是指那些没有名字的函数,它们通常用于需要一个函数作为参数传递给另一个函数的情况,或者用于定义一些简单的、一次性的函数。

lambda 表达式可以包含任意数量的参数,但只能有一个表达式。这个表达式就是该匿名函数的返回值。

下面是一个 lambda 函数的基本语法:

lambda arguments: expression

这里 arguments 是函数的参数,用逗号分隔,而 expression 是返回值的表达式。

如下所示,是一些lambda函数的例子:

# 一个简单的加法函数``add = lambda x, y: x + y`  `print(add(3, 4))  # 输出: 7``   ``# 判断一个数是否为偶数``is_even = lambda x: x % 2 == 0`  `print(is_even(4))  # 输出: True`  `print(is_even(5))  # 输出: False``   ``# 过滤列表中的偶数``numbers = [1, 2, 3, 4, 5, 6]`  `even_numbers = list(filter(lambda x: x % 2 == 0, numbers))`  `print(even_numbers)  # 输出: [2, 4, 6]``   ``# 排序字符串列表,按字符串长度``words = ['apple', 'banana', 'cherry', 'date']`  `sorted_words = sorted(words, key=lambda word: len(word))`  `print(sorted_words)  # 输出: ['date', 'apple', 'cherry', 'banana']

lambda函数在Python编程中非常有用,特别是在需要简短函数的地方,如 map(), filter(), 和 sorted() 等函数的参数中。它们提供了一种简洁的方式来定义和传递函数。然而,对于更复杂的功能,通常建议定义一个具名函数,因为它更易于阅读和维护。

总的来说,这六种工具在Python编程中被广泛应用,能够大大提高编程效率和代码质量。

相关文章:

学会拥抱Python六剑客,提高编程效率

在Python语言中,有六个强大的工具,它们被称为"Python六剑客"。而Python六剑客指的是Python中常用的六种功能强大且灵活的工具,它们分别是“切片(Slicing),推导列表(List Comprehensio…...

mysql 根据当前时间筛选某个时间范围内的数据

1.根据天数筛选 SELECT * FROM coupons WHERE NOW() BETWEEN start_time AND end_time; 在这个查询中,NOW()函数返回当前的日期和时间。BETWEEN操作符用于检查NOW()返回的当前时间是否在start_time和end_time之间(包括这两个时间)。 注意&a…...

Linux 常用指令详解

Linux 是一个强大而灵活的操作系统,掌握常用的 Linux 指令是使用和管理 Linux 系统的基础。本文将介绍一些常用的 Linux 指令,并附上 Vim 和 g 的常用指令说明,帮助你更好地进行开发和操作。 1. 基本文件操作指令 1.1 显示目录内容 ls常用…...

【简单讲解下npm常用命令】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...

Header Location重定向机制解析与应用

Header Location重定向机制解析与应用 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨HTTP中的Header Location重定向机制,以及在…...

硅纪元AI应用推荐 | 国产创作引擎即梦AI助力创作者探索创作新境界

“硅纪元AI应用推荐”栏目,为您精选最新、最实用的人工智能应用,无论您是AI发烧友还是新手,都能在这里找到提升生活和工作的利器。与我们一起探索AI的无限可能,开启智慧新时代! 在人工智能快速发展的今天,各…...

使用TableGeneration生成已标注的表格数据用于表格识别

利用 TableGeneration 生成多样化表格数据 TableGeneration 简介环境准备chrome浏览器(Linux下推荐)火狐浏览器(Mac下推荐) 生成表格生成表格 参数说明结论 在数据生成和处理领域,表格数据的生成是一个常见需求,尤其是在机器学习和数据分析领域。今天&am…...

赛目科技三度递表:净利率及资产回报率不断下滑,经营成本越来越高

《港湾商业观察》施子夫 5月29日,北京赛目科技股份有限公司(以下简称,赛目科技)第三次递表港交所,公司拟主板上市,独家保荐机构为光银国际。 公开信息显示,赛目科技此前曾于2022年12月&#x…...

【QT】概述|对象树模型|两种控件模式|信号和槽|lambda

目录 什么是QT 特点 QT程序 main函数 QT按钮 纯代码模式 图形化模式 对象树模型 信号和槽 连接与断开 自动连接 断开连接 信号的发射 lambda表达式 基本语法 捕获列表 Lambda表达式用于信号与槽的连接 例如 什么是QT Qt是一个跨平台的C图形用户界面应用…...

Java中的安全编码实践与防御技巧

Java中的安全编码实践与防御技巧 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨Java中的安全编码实践与防御技巧,这对于开发人员来说…...

linux 常用的命令、文件路径、其他工具或软件包

命令 sudo apt dist-upgrade 解决显示 暂不升级、未被升级dd if/dev/zero of./rootfs.img bs1G count6 制作一个 6G 的空白镜像。bs 是块字节数,count 是 bs 的个数。dd if./rootfs.img of/dev/sdc2 bs512 烧录 rootfs.img 镜像到 /dev/sdc2。bs 是 512 个字节&…...

00 如何根据规律在变化中求发展?

你好,我是周大壮。目前,我已在搜索推荐等算法技术领域从事研发近 10 年,做过诸多流量分发领域的算法技术工作。 如今任 58 同城的算法架构师、技术委员会人工智能分会委员、58 本地服务事业群算法策略部负责人,我主要负责 58 集团…...

UUID和自增ID做主键到底哪个好?

UUID(通用唯一识别码) 优点: 全局唯一性:由不同算法生成,确保全球范围内的唯一性,避免主键冲突。不可预测性:随机生成,难以被猜测,适合保密性应用。分布式应用&#xff1…...

FW SystemUI Keyguard解析(二)

文章目录 CTS之Keyguard Menu事件处理 CTS之Keyguard Menu事件处理 事件触发点: NotificationShadeWindowViewController.dispatchKeyEvent 设置setInteractionEventHandler回调之后通过NotificationShadeWindowView 触发 调用到return mService.onMenuPressed(); public cla…...

MySQL之备份与恢复(二)

备份与恢复 定义恢复需求 如果一切正常,那么永远也不需要考虑恢复。但是,一旦需要恢复,只有世界上最好的备份系统是没用的,还需要一个强大的恢复系统。 不幸的是,让备份系统平滑工作比构造良好的恢复过程和工具更容易…...

MySQL:保护数据库

保护数据库 1. 用户1.1 创建用户1.2 查看用户1.3 删除用户1.4 修改密码 2. 权限2.1 授予权限2.2 查看权限2.3 撤销权限 之前都是介绍本地数据库而你自己就是数据库的唯一用户,所以不必考虑安全问题。但实际业务中数据库大多放在服务器里,你必须妥善处理好…...

不是大厂云用不起,而是五洛云更有性价比

明月代维的一个客户的大厂云境外云服务器再有几天就到期了,续费提醒那是提前一周准时到来,但是看到客户发来的续费价格截图,我是真的没忍住。这不就是在杀熟吗?就这配置续费竟然如此昂贵?说实话这个客户的服务器代维是…...

C++初学者指南-3.自定义类型(第一部分)-异常

C初学者指南-3.自定义类型(第一部分)-异常 文章目录 C初学者指南-3.自定义类型(第一部分)-异常简介什么是异常?第一个示例用途:报告违反规则的行为异常的替代方案标准库异常处理 问题和保证资源泄露使用 RAII 避免内存泄漏!析构函数:不要让异…...

学会python——用python编写一个电子时钟(python实例十七)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.电子时钟程序 3.1 代码构思 3.2代码实例 3.3运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性…...

elementui中@click短时间内多次触发,@click重复点击,做不允许重复点击处理

click快速点击&#xff0c;发生多次触发 2.代码示例&#xff1a; //html<el-button :loading"submitLoading" type"primary" click"submitForm">确 定</el-button>data() {return {submitLoading:false,}}//方法/** 提交按钮 */sub…...

助力游戏实现应用内运营闭环,融云游戏社交方案升级!

通信能力在所有应用场景都是必备组件&#xff0c;这源于社交属性带给应用的增长神话。 在游戏场景&#xff0c;玩家从少数核心向大众用户泛化扩展的过程&#xff0c;就是游戏深度融合社交能力的过程。 从单机到联机&#xff0c;游戏乐趣的升级 1996 年&#xff0c;游戏界顶流…...

守护创新之魂:源代码防泄漏的终极策略

在信息化快速发展的今天&#xff0c;企业的核心机密数据&#xff0c;尤其是源代码&#xff0c;成为了企业竞争力的关键所在。然而&#xff0c;源代码的泄露风险也随之增加&#xff0c;给企业的安全和发展带来了巨大威胁。在这样的背景下&#xff0c;SDC沙盒作为一种创新的源代码…...

Halcon 基于分水岭的目标分割

一 分水岭 1 分水岭介绍 传统的分水岭分割方法&#xff0c;是一种基于拓扑理论的数学形态学的分割方法&#xff0c;其基本思想是把图像看作是地质学上的拓扑地貌&#xff0c;图像中每一像素的灰度值表示该点的海拔高度&#xff0c;每一个局部极小值及其周边区域称为集水盆地&…...

PHP 面向对象编程(OOP)入门指南

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种编程范式&#xff0c;通过使用对象来设计和组织代码。PHP作为一种广泛使用的服务器端脚本语言&#xff0c;支持面向对象编程。本文将介绍PHP面向对象编程的基本概念和用法&#xff0…...

Django学习第三天

python manage.py runserver 使用以上的命令启动项目 实现新建用户数据功能 views.py文件代码 from django.shortcuts import render, redirect from app01 import models# Create your views here. def depart_list(request):""" 部门列表 ""&qu…...

Vue3实现点击按钮实现文字变色

1.动态样式实现 1.1核心代码解释&#xff1a; class"power-station-perspective-item-text"&#xff1a; 为这个 span 元素添加了一个 CSS 类&#xff0c;以便对其样式进行定义。 click"clickItem(item.id)"&#xff1a; 这是一个 Vue 事件绑定。当用户点…...

深入理解Vue生命周期钩子函数

深入理解Vue生命周期钩子函数 Vue.js 是一款流行的前端框架&#xff0c;通过其强大的响应式数据绑定和组件化的开发方式&#xff0c;使得前端开发变得更加简单和高效。在Vue应用中&#xff0c;每个组件都有其生命周期&#xff0c;这些生命周期钩子函数允许开发者在不同阶段执行…...

Linux-gdb

目录 1.-g 生成含有debug信息的可执行文件 2.gdb开始以及gdb中的常用执行指令 3.断点的本质用法 4.快速跳出函数体 5.其他 1.-g 生成含有debug信息的可执行文件 2.gdb开始以及gdb中的常用执行指令 3.断点的本质用法 断点的本质是帮助我们缩小出问题的范围 比如&#xff0c;…...

Oracle分析表和索引(analyze)

分析表 analyze table tablename compute statistics; 分析索引 analyze index indexname compute statistics; 该语句生成的统计信息会更新user_tables这个视图的统计信息,分析的结果被Oracle用于基于成本的优化生成更好的查询计划 对于使用CBO(Cost-Base Optimization)很有好…...

MyBatis踩坑记录-多表关联字段相同,字段数据覆盖问题

MyBatis踩坑记录-多表关联字段相同&#xff0c;字段数据覆盖问题 1. 背景描述2. 实体记录3. 错误映射3.1 造成的影响 4. 解决办法4.1 修改映射文件 5. 修复后的效果5.1 返回的数据5.2 正确展示 7. end ~ 1. 背景描述 现有一下业务&#xff0c;单个任务下可能会有多个子任务&am…...

昇思25天学习打卡营第6天|数据变换 Transforms

学习目标&#xff1a;熟练掌握数据变换操作 熟悉mindspore.dataset.transforms接口 实践掌握常用变换 昇思大模型平台学习心得记录&#xff1a; 一、关于mindspore.dataset.transforms 1.1 变换 mindspore.dataset.transforms.Compose将多个数据增强操作组合使用。 mindspo…...

在线JSON可视化工具--改进

先前发布了JSON格式化可视化在线工具&#xff0c;提供图形化界面显示结构关系功能&#xff0c;并提供JSON快速格式化、JSON压缩、快捷复制、下载导出、对存在语法错误的地方能明确显示&#xff0c;而且还支持全屏&#xff0c;极大扩大视野区域。 在线JSON格式化可视化工具 但…...

探讨命令模式及其应用

目录 命令模式命令模式结构命令模式适用场景命令模式优缺点练手题目题目描述输入描述输出描述题解 命令模式 命令模式是一种行为设计模式&#xff0c; 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其…...

1、音视频解封装流程---解复用

对于一个视频文件(mp4格式/flv格式)&#xff0c;audio_pkt或者video_pkt是其最基本的数据单元&#xff0c;即视频文件是由独立的视频编码包或者音频编码包组成的。 解复用就是从视频文件中把视频包/音频包单独读取出来保存成独立文件&#xff0c;那么如何得知packet是视频包还是…...

centos7升级gcc到7.3.0

1、下载gcc-7.3.0源码 wget ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz 2、解压gcc-7.3.0 tar -xvf gcc-7.3.0.tar.gz3、安装依赖 cd gcc-7.3.0 ./contrib/download_prerequisites ./contrib/download_prerequisites会下载对应的依赖包&#xff0c;如果下载不了的话&a…...

系统运维面试题总结(网络基础类)

系统运维面试题总结&#xff08;网络基础类&#xff09; 网络基础类第七层&#xff1a;应用层第六层&#xff1a;表示层第五层&#xff1a;会话层第四层&#xff1a;传输层第三层&#xff1a;网络层第二层&#xff1a;数据链路层第一层&#xff1a;物理层 类似面试题1、TCP/IP四…...

PO模式登录测试

项目实践 登陆项目测试 get_driver import page from selenium import webdriverclass GetDriver:driver Noneclassmethoddef get_driver(cls):if cls.driver is None:cls.driver webdriver.Edge()cls.driver.maximize_window()cls.driver.get(page.url)return cls.drivercl…...

X86 +PC104+支持WinCE5.0,WinCE6.0,DOS,WinXP, QNX等操作系统,工业控制数据采集核心模块板卡定制

CPU 模块 是一款基于RDC 3306的SOM Express模块。RDC 3306这款X86架构的CPU是一款性能高、稳定性强的处理器。 它是一款灵活精巧的主板&#xff08;尺寸为91.8mm68.6mm&#xff09;&#xff0c;可以灵活的运用于用户的底板&#xff0c;节约开发成本。模块的接插件使用插针形式…...

视频监控汇聚和融合平台的特点、功能、接入方式、应用场景

目录 一、产品概述 二、主要特点 1、多协议支持 2、高度集成与兼容性 3、高性能与可扩展性 4、智能化分析 5、安全可靠 三、功能概述 1. 视频接入与汇聚 2. 视频存储与回放 3. 实时监控与预警 4. 信息共享与联动 5. 远程管理与控制 四、接入方式 1、直接接入 2…...

实习总结 --- 其他业务

一. 回归测试&#xff1a;回归测试与测新是对应的&#xff0c;当需求准入交付测试的时候首先要进行的就是测新&#xff0c;也就是对新功能对测试&#xff0c;一般是在sim环境下测试的&#xff1b;当测新通过后才会进行回归测试&#xff0c;回归测试的目的是为了保证老功能的正确…...

2024年上半年典型网络攻击事件汇总

文章目录 前言一、Ivanti VPN 的0 Day攻击(2024年1月)二、微软公司高管账户泄露攻击(2024年1月)三、Change Healthcare网络攻击(2024年2月)四、ConnectWise ScreenConnect漏洞利用攻击(2024年2月)五、XZ Utils软件供应链攻击(2024年3月)六、AT&T数据泄露攻击(20…...

Ozon、美客多补单测评黑科技:打造无懈可击的自养号补单环境

不管哪个跨境平台的风控都会做升级&#xff0c;相对的补单技术也需要进行相应的做升级&#xff0c;风控升级后&#xff0c;自己养号补单需要注意以下技术问题&#xff0c;以确保补单的稳定性和安全性&#xff1a; 一、物理环境 1. 硬件参数伪装&#xff1a;平台已经开始通过I…...

ES报错:解决too_many_clauses: maxClauseCount is set to 1024 报错问题

解决too_many_clauses: maxClauseCount is set to 1024 报错问题 问题场景报错信息问题分析解决1. 优化查询2. 增加maxClauseCount3. 改用其他查询类型修改后的查询示例 问题场景 查询语句&#xff1a;查询clcNo分类号包含分类O的所有文档 {"match_phrase_prefix":…...

完全指南:在Linux上安装和精通Conda

前言 Conda是一个强大的包管理和环境管理工具&#xff0c;特别适用于数据科学和机器学习项目。本文将详细指导你在Linux系统上安装、配置和充分利用Conda的方法。 步骤一&#xff1a;下载和安装Conda 下载安装包&#xff1a; wget https://repo.anaconda.com/miniconda/Minic…...

# linux 系统中,使用 “ ll “ 命令报错 “ bash ll command not found “ 解决方法:

linux 系统中&#xff0c;使用 " ll " 命令报错 " bash ll command not found " 解决方法&#xff1a; 一、错误描述&#xff1a; 报错原因&#xff1a; 1、这个错误表明你尝试在 bash shell 中执行 ll 命令&#xff0c;但是系统找不到这个命令。ll 通常…...

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.3-2.4

目录 第三门课 结构化机器学习项目&#xff08;Structuring Machine Learning Projects&#xff09;第二周&#xff1a;机器学习策略&#xff08;2&#xff09;(ML Strategy (2))2.3 快速搭建你的第一个系统&#xff0c;并进行迭代&#xff08;Build your first system quickly…...

【软件测试】快速定位bug,编写测试用例

作为一名测试人员如果连常见的系统问题都不知道如何分析&#xff0c;频繁将前端人员问题指派给后端人员&#xff0c;后端人员问题指派给前端人员&#xff0c;那么在团队里你在开发中的地位显而易见 &#xff0c;口碑、升值、加薪那应该是你遥不可及的梦 但是作为测试人员来说&…...

升级springboot3

坑爹的发版流水线&#xff0c;管天管地&#xff0c;springboot2过了维护期&#xff0c;就催着我们升级。 导致必须上jdk17 记录一下升级需要处理的事情 先升级springboot和cloud&#xff0c;这里定下基调&#xff0c;其他的才好跟着升级 https://spring.io/projects/spring-b…...

视频编解码从H.264到H.266:浅析GB28181安防视频汇聚EasyCVR视频压缩技术

随着信息技术的飞速发展&#xff0c;视频编解码技术也在不断革新&#xff0c;以适应高清、超高清甚至8K视频时代的到来。视频编解码技术作为数字多媒体领域的核心技术之一&#xff0c;也在不断地演进和革新。从早期的H.261到现在的H.265、H.266&#xff0c;每一次技术的升级都极…...

vue项目访问 域名/index.html 空页面问题

很大可能是vue前端没做404页面&#xff0c;在路由不匹配时会跳转到空路由页面。 也可以把所有路由不匹配的网址全部跳转到域名首页。防止出现404或者页面错误。 如果使用docker nginx部署项目&#xff0c;配置文件上会有 try_files $uri $uri/ /index.html; 这段配置会尝试…...

C语言调试技巧

叠甲&#xff1a;以下文章主要是依靠我的实际编码学习中总结出来的经验之谈&#xff0c;求逻辑自洽&#xff0c;不能百分百保证正确&#xff0c;有错误、未定义、不合适的内容请尽情指出&#xff01; 文章目录 1.bug 是什么2.debug 是什么3.两种模式的区别4.IDE 调试介绍4.1.模…...

scikit-learn超参数调优 (自动寻找模型最佳参数) 方法

网格搜索&#xff08;Grid Search&#xff09;&#xff1a; 原理&#xff1a;网格搜索通过预定义的参数组合进行穷举搜索&#xff0c;评估每一种参数组合的性能&#xff0c;选择性能最佳的参数组合。实现&#xff1a;使用GridSearchCV类。示例代码&#xff1a;from sklearn.mod…...

电子元器件基础知识总结

1.0 电阻 电阻的定义&#xff1a;导体对电流的阻碍作用称之为电阻【每一种导体都有内阻的存在】 闭合的电路中电子的移动输出有多快&#xff1f;电子在导体中的移动速度是很慢的 【铜线中电流的移动速度】 电子受到原子核的束缚&#xff0c;移动的速度很慢&#xff0c;在电压足…...

怎么搭建个人博客教程,附云主机选购指南

一、搭建个人博客教程 1. 规划博客内容与技术栈 确定博客主题&#xff1a;首先明确博客的定位和主题&#xff0c;这将影响后续的技术选择和内容规划。选择技术栈&#xff1a;根据个人偏好和技术背景&#xff0c;选择合适的建站技术。例如&#xff0c;可以使用WordPress&#…...

【人工智能】--强化学习(2.0)

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;强化学习与有监督学习的区别 &#x1f348;数据特点 &#x1f348;学习目标 &#x1f348;反馈机制 &#x1f348;策略…...

在 Vue 项目中使用 FullCalendar

1、先安装依赖包&#xff0c;根据自己的需求安装&#xff0c;建议使用cnpm安装&#xff0c;不然会很慢有时候会出现安装不上的情况。 npm i fullcalendar/vue --save npm i fullcalendar/core --save // 在月视图或日视图中操作事件 npm i fullcalendar/daygrid --save // 在…...

实惠有面子!风行M7诠释出行新主张,商务车中的超值之选!

在快速发展的商业环境中,出行不再是简单的位移,更是展示企业形象、提升工作效率的重要环节。对于商务人士而言,一辆合适的商务车不仅能提供舒适的乘坐体验,更是身份与品味的象征。在众多商务车型中,风行M7凭借其实惠的价格、体面的外观、宽敞舒适的空间以及高效的动力系统等特点…...

最长续航708公里阿尔法S5足以让Model3汗颜?

近日,极狐阿尔法S5已开启预售,预售价格分别为19.98万元、21.98万元,这款定位中型轿车的纯电是否有让同级竞品——Model 3汗颜的实力呢?据了解,阿尔法S5以电动性能著称,新车采用了豪华纯电车型中才会见到的同步+异步双电机组合,总功率高达390kW,总扭矩达到690Nm,百公里…...

C# 数组/集合排序

一&#xff1a;基础类型集合排序 /// <summary> /// 排序 /// </summary> /// <param name"isReverse">顺序是否取反</param> public static void Sort<T>(this IList<T> array, bool isReverse false)where T : IComparable …...

在做题中学习(62):矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;二维前缀和 思路&#xff1a;读题画图才能理解意思&#xff1a;dun点点的是mat中的一个数&#xff0c;而要求的answer同位置的数 以点为中心上下左右延长 k 个单位所围成长方形的和。 因为最后answ…...

gitlab将本地文件项目上传至gitlab服务

打开gitlab网页界面&#xff0c;登陆管理员账号 &#xff08;测试服务器安装的gitlab&#xff0c;浏览器输入ip或配置的gitlab地址&#xff09; 创建新项目 使用gitlab创建项目 创建一个新项目&#xff08;忽略分组&#xff09; &#xff08;忽略分组&#xff09; 在创建工…...

科技引领未来:高速公路可视化

高速公路可视化监控系统利用实时视频、传感器数据和大数据分析&#xff0c;通过图扑 HT 可视化展示交通流量、车速、事故和路况信息。交通管理人员可以实时监控、快速响应突发事件&#xff0c;并优化交通信号和指挥方案。这一系统不仅提高了道路安全性和车辆通行效率&#xff0…...