算法题常用函数

背景:做算法题会发现平时漏掉的一些知识点,包括函数之类的。所以记录下加深记忆,也方便以后复习查找。


sort 与 sorted 区别:
sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)


描述:s是序列,对序列如元组、列表进行切片操作。
语法:s是序列,s == s[a: b:c] ,
参数:[起始位置:结束位置:步长]
返回值:返回切过的列表。[::-1]即为将序列如字符串反转。


描述:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法:filter(function, iterable)
参数:
function – 判断函数。
iterable – 可迭代对象。
返回值:返回一个迭代器对象


描述:lower() 方法转换字符串中所有大写字符为小写。
语法:str.lower()
参数:无。
返回值:返回将字符串中所有大写字符转换为小写后生成的字符串。
注:upper()方法类似


描述:isalnum() 方法检测字符串是否由字母和数字组成。
语法:str.isalnum()
参数:无
返回值:如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False


描述:re.findall()在字符串中找到正则表达式所匹配的所有子串,并返回一个列表;如果没有找到匹配的,则返回空列表
语法:findall(patern, string, flags=0)
参数:
pattern : 正则中的模式字符串。
string : 要被查找替换的原始字符串。
flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。


描述:replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法:str.replace(old, new[, max])
参数:
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次
返回值:返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。


list删除元素:——待确认,pop后面加index,remove后面加对象
pop()方法删除
pop() 方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值.
remove():有时候不知道元素在列表中的位置,但知道元素的值,就可以用remove()方法删除元素。remove()方法只删除第一个指定的值
del语句可以删除任何位置处的列表元素,条件是知道索引


描述:
语法:
参数:
返回值:

### Python 算法题常用内置函数和方法 #### 列表操作 为了创建两个不同但值相同的列表对象,在回溯算法中经常采用如下方式[^1]: ```python a = [1, 2, 3] b = a[:] # 使用切片复制列表 ``` 或是利用`list()`构造器完成同样的目的: ```python c = list(a) # 构造新列表 ``` 这两种做法都确保了即使原始列表发生变化,副本也不会受到影响。 #### 数据结构处理 - 堆/优先队列 对于需要高效访问最小或最大元素的情况,可以借助于`heapq`模块提供的功能来构建堆数据结构。这通常涉及到首先引入必要的工具包[^2]: ```python from heapq import * h = [] heappush(h, (5, 'write code')) heappush(h, (7, 'release product')) heappush(h, (1, 'write spec')) heappop(h) # 返回并移除具有最小键值的项 ``` #### 迭代组合生成 当面对排列组合类题目时,itertools模块下的多个函数显得尤为有用。比如想要获取某个集合内所有可能的不同顺序,则可以通过permutations函数实现[^3]: ```python import itertools for p in itertools.permutations('ABC'): print(''.join(p)) ``` 同样地,如果要计算笛卡尔积——即多组项目间所有的配对可能性,product函数会是一个不错的选择: ```python for t in itertools.product(['A', 'B'], ['X', 'Y']): print(t) ``` #### 辅助性基础函数 一些最基本但也极为重要的辅助性质的功能也值得提及,例如打印输出以及读取用户输入的操作均能通过简单的命令达成;另外还有用来查询变量类型的type()函数等[^4]: ```python print("这是一个测试") # 向屏幕显示消息 name = input("请输入名字:") # 获取键盘输入作为字符串存储至变量 age = 20 print(type(age)) # 查看年龄变量的具体类别 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值