Python常用内置函数、方法、技巧汇总

Python刷算法题常见内置函数、方法技巧【最全汇总】 对于一个给定的数列A,它的前缀和数列S中S[i+1]表示从第1个元素到第i个元素的总和。假设nums是一个int型列表,形如就是从索引0对应的元素开始,累加到索引i对应的元素的前缀和。譬如,那么其前缀和列表即为。前缀和的作用是可以在O(1)的时间复杂度下快速地计算出某段连续子数组的和。即譬如对于上述而言,如果想快速计算出子数组的结果,只需要计算即为答案。前缀和的作用也可以用来解释,为什么我们会把0也视为一个前缀和并且放在前缀和列表的第一个位置。由于设置了,那么,才能够得到起始位置为原数组。 阅读详情

1. 字典序与数字序

最常见的两种排序依据是字典序和数字序。

字典序就是按照字符在ASCII码值表中的排列方式进行排序。
其较为严格的定义是,对于两个字符串x和y,

  • 譬如"abandon"和"an"的比较,存在"abandon" < “an”,因为第二个字符"n"在字符串排在"b"后面
  • 譬如"10"和"2"的比较,存在"10" < “2”,因为第一个字符"1"在中排在"2"前面。
  • 空字符串比一切字符都小,譬如"abc"和"abcd"的比较,存在"abc" < “abcd”,因为"abc"的第四位可以看作是一个空字符串"“,该空字符串”“小于"d”。
    可以简单理解为,字符串在现实中的字典里是怎么排布的,字典序就是怎么排布的。

数字序就是按照数字大小来进行排序。

  • 譬如10和2的比较,显然10 > 2。

不管是字典序还是数字序,都有升序和降序两种排序形式,前者指从小到大排列,后者指从大到小排列。可以从下表的例子中看出他们之间的关系。
在这里插入图片描述

2. 稳定排序与不稳定排序

所谓稳定排序,是指key相同的元素在排序后的新数组中,其位置相对于原数组不发生改变。反之则成为不稳定排序。在常见的排序算法中,归并排序属于稳定排序,快速排序属于不稳定排序。

如题目:给定一个非空数组(列表),其中元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,
十进制最低位相同的元素,相对位置保持不变,当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。
输入描述
给定一个非空数组,其元素数据类型为32位有符号整数,数组长度为[1,1000]。
输出描述
输出排序后的数组
示例
输入

1,2,5,-21,22,11,55,-101,42,8,7,32

输出

1,-21,11,-101,2,22,42,32,5,55,7,8

我们做出了如下的排序操作。

nums.sort(key = lambda x: int(x[-1]))

指定了字符串x的最后一个字符来作为排序依据key。当key相等时,元素会维持在原数组中的相对位置保持不变,达到稳定排序的结果。达到如下的输入、输出结果。

>>> 1,2,5,-21,22,11,55,-101,42,8,7,32 # 输入
>>> 1,-21,11,-101,2,22,42,32,5,55,7,8 # 输出

3. 三目运算符/三元表达式

三目运算符(有些人也称三元表达式)可以看作是if语句的简写版本,其基本语法结构为:

  • 语句1 if 条件 else 语句2
    其含义为:如果if后所带的条件满足,则会执行语句1,否则执行语句2。
ans = 1 if True else 0
print(ans)    # 得到1

ans = 1 if False else 0
print(ans)    # 得到0

print(1) if True else print(0)    # 输出1

4. lambda匿名函数

匿名函数,顾名思义就是不需要具体定义函数名的函数。我们首先抛开复杂的定义,看两个具体例子。

先看一个无参数函数的例子。假设我们需要一个return 1的函数,如果使用普通的函数定义方式,其代码为:

# 使用def关键字进行函数定义
def get_one():
    return 1

# 输出1
print(get_one())

如果我们使用lambda匿名函数,我们则不需要使用def关键字而改用lambda关键字,其代码为:

# 使用lambda匿名函数进行函数定义
# 注意这里的get_one_lambda看似是一个变量名
# 但实际上是一个函数名
get_one_lambda = lambda: 1

print(get_one_lambda)
# 输出形如 <function <lambda> at 0x00000249F7AD7B00> 的结果
# 这一长串复杂的十六进制数是函数get_one_lambda的内存地址
 
print(get_one_lambda())
# 在函数名get_one_lambda后面加上括号,才能正确地输出1

把上述代码进行合并操作,可以无需声明函数名get_one_lambda,直接得到结果:

# 这里的(lambda: 1)等价于上面的函数名get_one_lambda
# (lambda: 1)()等价于get_one_lambda()
# 显然get_one_lambda这个函数名是不必要的,故称之为"lambda匿名函数"

print(lambda: 1)        
# 输出形如 <function <lambda> at 0x00000249F7AD7B00> 的结果
# 这一长串复杂的十六进制数是该匿名函数的内存地址

print((lambda: 1)())
# 在匿名函数后面加上括号,才能正确地输出1

再看一个有参数函数的例子。假设我们需要一个计算两个参数x和y相加return x+y的函数,如果使用普通的函数定义方式,其代码为:

# 使用def关键字进行函数定义
def add(x, y):
    return x+y

# 输出30
print(add(10, 20))

如果我们使用lambda匿名函数,我们则不需要使用def关键字而改用lambda关键字,其代码为:

# 使用lambda匿名函数进行函数定义
# 注意这里的get_one_lambda看似是一个变量名
# 但实际上是一个函数名
add_lambda = lambda x,y: x+y

print(add_lambda)        
# 输出形如 <function <lambda> at 0x00000249F7AD7B00> 的结果
# 这一长串复杂的十六进制数是函数add_lambda的内存地址

print(add_lambda(10, 20))
# 在函数名add_lambda后面加上括号并传入参数,才能正确地输出结果

把上述代码进行合并操作,可以无需声明函数名add_lambda,直接传入两个数字10和20,得到结果:

# 这里的(lambda x,y: x+y)等价于上面的函数名add_lambda
# (lambda x,y: x+y)(10, 20)等价于add_lambda(10, 20)
# 显然add_lambda这个函数名是不必要的,故称之为"lambda匿名函数"

print(lambda x,y: x+y)        
# 输出形如 <function <lambda> at 0x00000249F7AD7B00> 的结果
# 这一长串复杂的十六进制数是该匿名函数的内存地址

print((lambda x,y: x+y)(10, 20))
# 在匿名函数后面加上括号并传入参数,才能正确地输出结果

根据上述两个例子已经能够看出端倪了,有以下重要结论:

  1. lambda匿名函数本质上是一个函数,而不是一个变量,使用lambda匿名函数可以得到一个函数。
  2. 定义lambda匿名函数的语法为:lambda [形参]: 返回值,形参的数量可以为0,即支持定义无参数匿名函数。
  3. 使用lambda匿名函数的语法为:(lambda [形参]: 返回值) ([实参]),一般情况下,实参的数量应该和定义的形参数量一致。
    *注:上述语句中的中括号[]表示非必须结构。

最后我们来看lambda匿名函数在算法题中的几个经典用法。

1.defaultdict()

使用内置模块collections中的defaultdict(func),能够将哈希表的值value的默认类型设置为func,其中func是某种数据类型初始化函数的函数名,如int,list,dict等等。

假设我们想要value的默认值为1,其中一种方法通过def关键字定义一个叫做get_one()的函数,并且将函数名get_one作为函数名传入defaultdict(func)中。

from collections import defaultdict

# 使用def关键字进行函数定义
def get_one():
    return 1

# 哈希表d的value的默认值即为1
# 注意这里传入的是函数名get_one,而不是调用函数get_one()
d = defaultdict(get_one)

# 输出1
print(d[0])

通过前面分析我们知道,get_one这个函数名实际上等同于lambda: 1,故我们不需要对get_one()显式地进行定义,使用lambda匿名函数能够使得代码更加整洁。

from collections import defaultdict

# 哈希表d1的value的默认值即为1
d_lambda = defaultdict(lambda: 1)

# 输出1
print(d_lambda[0])

2. sort()方法或内置函数sorted()

sort()方法和内置函数sorted()均包含key参数,用来指定排序的依据。key参数传入的也是一个函数名func,可以简单理解为对列表中的所有元素均使用函数func后,以得到的结果为依据对原列表进行排序。
假设我们想要对字符串按照长度来排序,可以指定len()内置函数为排序依据。

lst = ["123", "4567", "0", "12", "789"]

# 注意这里key参数传入是函数名len,而不是调用函数len()
lst.sort(key = len)

# 输出['0', '12', '123', '789', '4567']
print(lst)

上述代码也可以写成lambda匿名函数的形式。

lst = ["123", "4567", "0", "12", "789"]

# 注意这里key参数传入是函数名len,而不是调用函数len()
lst.sort(key = lambda x: len(x))

# 输出['0', '12', '123', '789', '4567']
print(lst)

如果对于长度相同的字符串,我们还想要按照数字序降序排列,那么仅用len()函数是无法完成的,只能通过进一步完善lambda匿名函数来完成。

lst = ["123", "4567", "0", "12", "789"]

# 注意这里key参数传入是函数名len,而不是调用函数len()
lst.sort(key = lambda x: (len(x), -int(x)))

# 输出['0', '12', '789', '123', '4567']
print(lst)

3. 内置函数map()

内置函数map(func, iter)包含两个参数,分别是函数名func和可迭代对象iter。这里的func参数不仅可以传入已有的内置函数或自定义函数的函数名,也可以直接用lambda匿名函数完成。

譬如想要对由二进制字符串组成的列表lst_bin中的每一个字符串用先导0填充至长度为4,如果我们使用def关键字定义一个叫做get_pre_0()的函数,可以这样实现:

# 使用def关键字进行函数定义
# (4-len(s))能够获得应该填充的先导零"0"的个数
def get_pre_0(s):
    return (4-len(s))*"0" + s

lst_bin = ["10", "101", "1100", "1", "0"]

# 注意这里key参数传入是函数名get_pre_0,而不是调用函数get_pre_0()
lst_with_pre_0 = list(map(get_pre_0, lst_bin))

# 输出['0010', '0101', '1100', '0001', '0000']
print(lst_with_pre_0)

使用lambda匿名函数,无需具体定义函数get_pre_0(),亦可完成同样操作。

lst_bin = ["10", "101", "1100", "1", "0"]

# 使用lambda匿名函数,无需具体定义函数get_pre_0()
lst_with_pre_0_lambda = list(map(lambda x: (4-len(x))*"0" + x, lst_bin))

# 输出['0010', '0101', '1100', '0001', '0000']
print(lst_with_pre_0_lambda)

5. 基于元素之间关系的排序

在对数据进行排序的时候,可能会遇到这样一种情况。
我们希望通过比较元素之间的关系来进行排序,而非基于元素自身相关的某个指标来进行排序。
那么单纯使用参数key和lambda匿名函数就无法满足我们的需求了。

譬如【贪心】2024E-卡片组成的最大数字(小组中每个人都有一张卡片,卡片上是6位以内的正整数,组员将卡片连起来可以组成多种数字。计算可以组成的最大数字。)中遇到的情形,我们希望字符串数组中,两两元素之间,按照能拼接出更大字典序的方式来排列。

在Python中我们可以通过导入functools中的cmp_to_key函数并结合传入函数名compare实现这样的排序。
其具体代码如下

from functools import cmp_to_key

# 用来作为cmp_to_key的比较函数
def compare(x, y):
    # x+y组成的数字更大,x应该排在y前面
    if x+y > y+x:
        return -1
    # y+x组成的数字更大,y应该排在x前面
    elif x+y < y+x:
        return 1
    # x+y和y+x组成的数字一样大,x和y之间的位置关系无关紧要
    else:
        return 0

# 对输入根据","进行切割,得到字符串数组lst
lst = input().split(",")
# 对lst根据compare的比较规则,调用cmp_to_key函数进行排序
lst.sort(key = cmp_to_key(compare))
# 对lst排序后的结果进行输出
print("".join(lst))

或者

from functools import cmp_to_key

# 用来作为cmp_to_key的比较函数
def compare(x, y):
    # x+y组成的数字更大,x应该排在y前面
    if x+y > y+x:
        return -1
    # y+x组成的数字更大,y应该排在x前面
    elif x+y < y+x:
        return 1
    # x+y和y+x组成的数字一样大,x和y之间的位置关系无关紧要
    else:
        return 0

# 对输入根据","进行切割,得到字符串数组lst
lst = input().split(",")
# 对lst根据构建的lambda匿名函数为比较规则,调用cmp_to_key函数进行排序
lst.sort(key = cmp_to_key(lambda x, y: int(y+x)-int(x+y)))
# 对lst排序后的结果进行输出
print("".join(lst))

6. ord()与chr()

这两个函数用于ASCII码值和对应字符之间的转化。

  • ord(ch)可以将字符ch转化为对应ASCII码值。其中ord()表示的是order的意思。
  • chr(num)可以将ASCII码值num转化为对应字符。其中chr()表示的是character的意思。
print(ord("0"))    # 得到48
print(ord("A"))    # 得到65
print(ord("B"))    # 得到66
print(ord("a"))    # 得到97
print(ord("b"))    # 得到98

print(chr(48))     # 得到"0"
print(chr(66))     # 得到"C"
print(chr(67))     # 得到"D"
print(chr(99))     # 得到"c"
print(chr(100))    # 得到"d"

一个常用的技巧是,如果有一个小写字母ch,想令其拥有形如"a": 0, “b”: 1,“c”: 2,…,“z”: 25这样的字母表顺序映射关系,我们可以通过以下代码得到。

# 假设字符ch是"c",其映射在字母表中顺序的映射应该是2
ch = "c"                    

# ord(ch)是99,ord("a")是97,相减得到2
idx = ord(ch) - ord("a")

这个技巧常用于用列表表示已知范围的哈希表的操作。

关于ASCII码值更加详细的内容,可以看百度百科-ASCII码值。

7. all()与any()

内置函数all()与any()中传入的是一个可迭代对象iter(如一个列表lst),返回值为一个布尔类型。

  • 对于all(iter)而言,如果可迭代对象iter中所有的值均为True,那么all(iter)会返回True,否则返回False
  • 对于any(iter)而言,如果可迭代对象iter中任意的值满足True,那么any(iter)会返回True,否则返回False
print(all([True, True, True]))
print(all([True, True, False]))

print(any([False, False, False]))
print(any([True, True, False]))

注意这两个内置函数,经常搭配推导式一起使用。

8. 全局变量

如果在自定义函数体外声明了一个全局变量,可以用在函数体中用global关键字来修饰这个全局变量,那么该变量就可以在函数体中直接使用了。这个技巧在DFS题目中非常实用,用于避免写出逻辑复杂的return返回值。

def f():
    global ans
    ans += 1

ans = 0
print(ans)
f()
print(ans)

9. 最大递归深度

当我们在做DFS和回溯题目的时候,通常会使用递归来实现。Python中默认的最大递归深度是1000,但有时候由于用例本身的问题,程度的递归深度会超过1000,就会出现如下的报错

RecursionError: maximum recursion depth exceeded in comparison

在确认代码无误的情况下,我们可以使用sys内置库中的setrecursionlimit()方法,来重新设置最大递归深度,其具体代码如下

import sys
sys.setrecursionlimit(1000000)    # 这里不一定设置1000000,设置成一个很大的数即可

上述两行代码加在程序的最前方即可。

Python3常用内置方法代码实例 这篇文章主要介绍了Python3常用内置方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 max()/min() 传入一个参数 (可迭代对象), 返回这个可迭代对象中最大的元素 可以设置default关键字参数, 当这个可迭代对象为空时, 返回default的值 传入多个参数, 返回这些参数中最大的参数 多个参数必须是同类型的 两种方法都可以设置key关键字参数(传入函数) """ max(iterable, *[, default=obj, key=func]) -> value max(a 立即下载

相关推荐

机器人控制入门

机器人控制入门 对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然让你去多编程。机器人领域也是。如果想把基本功打扎实,那么实践更是必不可少了。 机器人控制有三个元素:控制器(算法),执行器(电机),传感器; 控制的本质就是将规划系统的指令作为输入信息,将传感器探测得到的状态信息和导航系统的定位

彼岸花 1万+

Python 常用重要内置方法

文章目录python常用重要内置方法map()zip()filter()reduce() python常用重要内置方法 map() map() 会根据提供的函数对指定序列做映射。 map() 函数语法: map(function, iterable, ...) function -- 函数 iterable -- 一个或多个序列 举例说明 list_a = [11, 22, 33, 44, 55] ---给定一个列表,对列表中所以内容进行增加 10 --- 1. 方式一,我们可以用

XWenXiang的博客 1152

OpencvSharp学习笔记(一):图片的打开,保存灰度化,保存

近来萌生了学习OpenCv的想法,经过度娘得知老夫会的C#不能直接用OpenCv,只能用他的儿子OpenCvSharp与EmguCV,奈何奈何,这两玩意的资料少的出奇,只能慢慢的摸索了,EmguCV先不说,老夫找到了牛批的资料,先摸索OpencvSharp吧 首先打开VS通过Nuget安装 选择版本后点击安装就OK了. 安装完成后,引用里面就有以下的玩意儿了… 废话不多说了,在写程序前先 using OpenCvSharp 图片打开,灰度化,保存代码如下: static void Main(strin

猥琐de专注 7186

python 内置方法赋值_Python 内置方法

1. abs() 取绝对值函数1 #!/usr/bin/env python2 #_*_ coding: UTF-8 _*_3 #Author:taoke4 i = 1005 print(abs(i))6 i = -1007 print(abs(i))2.dict() 创建字典1 print(dict({"a":1, "b":2, "c":3}))3.help() 帮助函数4.min()返回最小...

weixin_28785069的博客 386

IC617多线程仿真卡死?手把手教你用TigerVNC替换解决ADE XL Explorer问题(附Manjaro/Centos8实测)

本文针对IC617在Manjaro、CentOS 8等高版本Linux系统中运行ADE XL Explorer进行多线程仿真时出现的卡死问题,提供了详细的诊断与解决方案。文章指出问题根源在于软件内置的旧版VNC组件不兼容,并手把手指导用户通过使用TigerVNC替换原组件来彻底解决,附有在Manjaro和CentOS 8系统上的实测步骤与验证方法。

hill8的博客 774

2024年五大革新图像分割模型解析:架构创新与实战应用指南

本文深入解析2024年五大革新图像分割模型,包括SAM2、Mask2Former、DINOv2和Swin Transformer等,探讨其架构创新与实战应用。从多尺度处理、提示交互到自监督学习,这些模型在精度提升、效率优化和交互增强方面取得突破,广泛应用于医疗影像、工业质检和智慧城市等领域。

hadoop5ranger的博客 894

python的内置方法

Python提供了许多内置方法作为内置函数,可以直接在Python中使用。这些内置方法提供了处理不同类型的数据和执行各种常见操作的功能。

weixin_49520696的博客 175

PostgreSQL的学习心得和知识总结(一百二十六)|深入理解PostgreSQL数据库SQL执行时间计算 \timing 和 log_duration的使用和原理

1、参考书籍:《PostgreSQL数据库内核分析》2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》3、

孤傲小二~阿沐的博客 982

Python进阶学习(4)内置方法

一、内置方法 1.信息格式化方法 2. 析构方法(魔法方法) 3.__new__函数

Appppiiiiggg的博客 836

【nvidia-B200】实际生产报错NVRM: nvAssertFailedNoLog: Assertion failed: pIOVAS != NULL @ io_vaspace.c:601

升级 NVIDIA 驱动到 R545/R550 数据中心版本(解决 IOVA bug,这是性能差的根本原因);重启服务器(清理驱动残留资源,消除日志中的 NVRM 错误);验证 NVLink/PCIe 链路(确保 8 卡互联使用高速链路,而非单卡 PCIe 共享带宽)。完成这 3 步后,ncccl-test的all_reduce带宽应能提升至100GB/s 以上(取决于服务器的 NVLink/NVSwitch 配置),恢复正常性能。

jundao1997的专栏 647

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(1)

海思SS928,SS926以及Hi3519dv500,hi3516dv500下的yolov7模型部署推理系列

Littro Innovations 3079

python常用内置函数大全集

内置函数是Python编程中一个非常强大的工具,它们提供了高效、可靠和标准化的方式来执行常见任务,从而提高了代码的性能、可读性、可维护性和灵活性。

2301_78319341的博客 1713

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Python列表之常用内置函数、方法、技巧汇总

"拼命工作。我是说你每周只需要花80到100个小时,就能提高成功的概率。"

胸纳甲兵,烽烟起可靖疆晏海。 557

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

算法题Python常用内置函数、方法、技巧汇总(其一:列表)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!指向两个不同的列表对象,我们在赋值操作时可以有两种操作,来让。是同一个列表对象的两个别名,它们表示同一个列表,因此修改。表示两个不同的(但值相同的)列表对象。的特性,即可完成列表的去重。匿名函数的使用可以详见真题。有两个长度相等的列表。

weixin_48157259的博客 1596

算法题Python常用内置函数、方法、技巧汇总(其四:数字)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。最常用的进制是十进制,除此之外常用的进制还有二进制、八进制、十六进制。某些题目在对变量进行初始化的时候,需要将其初始化为无穷大或者负无穷大,这可以用python中的。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!,表示将一个七进制数字符串,转化为一个十进制整数。是向下取整,对于负整数而言,

weixin_48157259的博客 1175

算法题Python常用内置函数、方法、技巧汇总(其三:字符串)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。数字,所以是不能够判断负数的,在使用该方法时要注意这个问题,以免错判。如果我们确定字符串不会存在数字和其他字符混搭的情况,我们可以只取字符串的最后一个元素进行判断。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!方法用以判断字符串中是否均为字母和数字,根据判断结果返回一个布尔类型。

weixin_48157259的博客 1215

算法题Python常用内置函数、方法、技巧汇总(其七:位运算)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!参与运算的两个数,如果两个相对应的位相等,那么该位的运算结果为。,得到一个新的二进制数,再将其转换为十进制数即为结果。参与运算的两个数,如果两个相对应的位的均为。参与运算的两个数,如果两个相对应的位的均为。的幂,才会具备上述性质,我们可以使用。

weixin_48157259的博客 1019

算法题Python常用内置函数、方法、技巧汇总(其二:哈希表)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。,**并不是不能够完成计数的功能,只是在代码逻辑上需要多加一个判断,**较为冗长。如果没有加上述判断,直接执行以下代码,每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!所以在需要进行元素频率记录的时候,直接使用。匿名函数,设置更加丰富的默认值。中,也可以访问或添加。可以避免频繁的判断。

weixin_48157259的博客 716

算法题Python常用内置函数、方法、技巧汇总(其六:前缀和)

对于一个给定的数列A,它的前缀和数列S中S[i+1]表示从第1个元素到第i个元素的总和。假设nums是一个int型列表,形如就是从索引0对应的元素开始,累加到索引i对应的元素的前缀和。譬如,那么其前缀和列表即为。前缀和的作用是可以在O(1)的时间复杂度下快速地计算出某段连续子数组的和。即譬如对于上述而言,如果想快速计算出子数组的结果,只需要计算即为答案。前缀和的作用也可以用来解释,为什么我们会把0也视为一个前缀和并且放在前缀和列表的第一个位置。由于设置了,那么,才能够得到起始位置为原数组。

weixin_48157259的博客 1483

算法题Python常用内置函数、方法、技巧汇总(其五:堆/优先队列)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。谈到优先队列时,一般强调其功能或应用,谈到堆时,一般强调其树形结构,但这两个词是可以进行同义替换的,大部分时候不用做严格区分。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!,在树形结构上体现为,每一个节点的值都小于其子节点的值。,在树形结构上体现为,每一个节点的值都大于其子节点的值。

weixin_48157259的博客 1461

算法题Python常用内置函数、方法、技巧汇总(其八:推导式)

60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁。每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!python中的推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列。目前开始常态化报名!目前已服务100+同学成功上岸!课程讲师为全网50w+粉丝编程博主@以及小红书头部编程博主@练习华子OD、大厂真题。

weixin_48157259的博客 716

python字符串常用方法及汇总

字符串常用方法常用的查找方法去除首尾信息大小写转换格式排版其他方法字符串的格式化format()基本用法填充与对齐数字格式化其他格式,供大家参考:可变字符串 常用的查找方法 我们以一段文本作为测试: a=’’‘我是高兴,今年 18 岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他 6 岁了。我是一个编程教育的普及者,希望影响 6000 万学习编程的中国人。我儿子现在也开始学习编程,希望他 18 ...

咸鱼!!! 4万+

Python内置函数汇总

如有错误,恳请指出。一直以来都是现查现学Python的相关内置函数,想看看全部的汇总版本,最近还真发现有大佬早已把相关的内置函数全部汇总完毕了。博主 将Python 3.5版本中的68个内置函数,按顺序逐个进行了详细的解析,对这些内置函数分为了10个大类。链接见:Python内置函数详解——总结篇,同时参考资料也有引用,现在这里进行搬运。搬运之余,这里其中会补充一些博主没有提及到的比如 函数, 函数等等。 ...

Clichong 1万+

Python基本内置函数及常用库汇总(加用法)

在初学Python时的基础内置函数汇总   最近暑假想学习Python,为了让自己未来的就业多一分竞争力,也为了让自己掌握多一项技能,于是就去看了大学MOOC嵩天老师的Python程序设计基础。课程内容很不错,讲的细致全面,由浅入深,最后的思维提高也令人深思,但我的脑子老化生锈记不住函数,再加上懒惰不去背记,忘得很快,于是写这个博客帮助自己背记。 此博文后续持续更新中… Python中的33个保留...

qq_35572368的博客 1万+

Python内置函数功能汇总

前言 今天整理的内容是Python的一些内置函数。下面这张图是老师在课堂上的一张PPT: 从图中我们可以看到,Python有68个内置函数,其中标有下划线的是老师要求必须记牢的,其实这些也是我们在使用Python时会用到最多的一些内置函数。图片下面的链接是老师推荐给我们去学习了解的关于Python内置函数的一篇博客。看到有博主将这68个内置函数归为10类,感觉很细致很清晰,在此就仿照这种格式来进...

MuZLL17的博客 2284
上一篇: Python中的推导式是什么?是美味的吗?
下一篇: 【每天多努力一点】Python编程之元组
Next2you
博客等级 码龄7年 1238粉丝 166原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Next2you

你真帅!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值