网站开发软硬件,校园风景网页设计图片,军队 网站备案,如何编写一套网站模板一、collections
collections是 Python 标准库中的一个模块#xff0c;提供了一些专门的容器数据类型#xff0c;能够帮助你更高效地处理常见的数据结构操作。
1、Counter
Counter 是一个字典的子类#xff0c;用于计数可哈希对象。它会统计对象的出现次数#xff0c;并…一、collections
collections是 Python 标准库中的一个模块提供了一些专门的容器数据类型能够帮助你更高效地处理常见的数据结构操作。
1、Counter
Counter 是一个字典的子类用于计数可哈希对象。它会统计对象的出现次数并能快速获取某个元素出现的次数。
特点
它的键是可哈希的元素值是该元素的计数。可以使用常见的字典操作也支持一些特定的方法如 .most_common() 获取出现频率最高的元素。
from collections import Counter# 计数元素出现次数
counter Counter([a, b, c, a, b, a])
print(counter) # 输出: Counter({a: 3, b: 2, c: 1})# 获取出现频率最高的两个元素
print(counter.most_common(2)) # 输出: [(a, 3), (b, 2)]2、defaultdict
defaultdict 是 dict 类的一个子类它会为字典中不存在的键提供一个默认值。defaultdict 在查找时不会抛出 KeyError 异常而是返回一个默认值。
特点
需要指定一个工厂函数来定义默认值。工厂函数可以是任何可调用对象如 int、list、set 等。
from collections import defaultdict# 创建一个默认值为 0 的字典
dd defaultdict(int)
dd[apple] 1
dd[banana] 2
print(dd) # 输出: defaultdict(class int, {apple: 1, banana: 2})【补充】字典相关操作
①dic.get(key, defaultNone)返回指定键的值如果键不在字典中返回 default 设置的默认值
②sorted(dic)用于对 字典的键keys 进行排序并返回一个 排序后的键列表。它不会对字典本身进行排序而是返回一个新的 排序后的列表列表中只包含键。
③sorted(dic.items(), keylambda x: x[1])按照值value大小进行排序 3、deque
deque双端队列是一个可以从两端快速插入和删除元素的容器。相比于列表listdeque 在两端操作的时间复杂度是常数时间 O(1)而 list 在两端操作的时间复杂度是 O(n)。
特点
适用于需要频繁进行队列或栈操作的场景。提供了 .append()、.appendleft()、.pop()、.popleft() 等方法。
from collections import deque# 创建一个双端队列
dq deque([1, 2, 3])
dq.append(4) # 从右侧添加
dq.appendleft(0) # 从左侧添加
print(dq) # 输出: deque([0, 1, 2, 3, 4])dq.pop() # 从右侧删除
dq.popleft() # 从左侧删除
print(dq) # 输出: deque([1, 2, 3])二、处理字符串
1、ord()
print(A 对应的 ASCII 值为, ord(A)) # 输出A 对应的 ASCII 值为 65 2、split()
str.split(sepNone, maxsplit-1) 是最常用的字符串分割方法
sep: 可选指定分隔符。如果省略或为 None则默认按空白字符空格、制表符等分割。maxsplit: 可选分割次数的最大值默认为 -1即分割所有的可能。
# 按空格分割
text Python is great
result text.split()
print(result) # 输出: [Python, is, great]# 按逗号分割
text apple,banana,cherry
result text.split(,)
print(result) #3、rjust()和ljust()
rjust()是字符串的一个方法用于将字符串右对齐并在其左边填充指定的字符直到达到指定的长度。
反之ljust()就是左对齐
# 基本语法
string.rjust(width, fillchar )参数: width指定返回的字符串的总长度。若 width 大于原始字符串的长度则会在字符串的左侧填充字符。fillchar用于填充的字符默认为空格 。可以指定其他字符。 返回值: 返回一个新的字符串其总长度为 width如果原字符串长度小于 width则在其左侧填充指定的字符。
4、isalpha()
isalpha() 是 Python 字符串str的一个方法用于判断字符串是否只包含字母A-Z 和 a-z。
s Hello
print(s.isalpha()) # True因为只包含字母三、其他
1、sort()和sorted()
都是升序排序默认 ①ist.sort(*, keyNone, reverseFalse) 只能用于列表排序返回None直接修改原列表 ②sorted(iterable, *, keyNone, reverseFalse)可用于列表、元组、字符串、字典等可迭代对象。返回一个新列表原始数据不会被改变。 key: 可选指定一个函数作为排序的关键。key 参数接收一个函数这个函数用于从每个列表元素中提取比较值。默认值是 None即直接比较列表元素本身。 reverse: 可选如果设置为 True列表将按降序排序如果是 False默认值则按升序排序。
【补充】 sorted() 对 全是英文单词的列表 进行排序时默认按 ASCII 值Unicode 编码升序排列即 按照字典序从字符串的第一个字符开始逐个比较直到找到第一个不同的位置通过比较这个位置字符对应的 Ascii码得出字符串的大小 进行排序。
# 按照第二个元素排序
data [(1, apple), (3, banana), (2, cherry)]
sorted_data sorted(data, keylambda x: x[1]) # 按字母顺序排序
print(sorted_data)2、map
map(function, iterable, ...)
function: 一个函数用于对可迭代对象的每个元素进行处理。iterable: 一个或多个可迭代对象如列表、元组、字符串等。可以传入多个可迭代对象function 会同时对它们进行操作。
返回值一个迭代器包含了 function 应用到 iterable 中每个元素后的结果。如果你需要得到一个列表或其他类型的数据结构可以将返回值传入 list() 或 tuple() 函数进行转换。
# 把所有读取到的字符串元素都转换成整数类型
map(int, input().split())
3、lambda
lambda函数是 Python 中的一种匿名函数没有函数名称通常用于创建简单的、一行的函数。
lambda arguments: expressionarguments: 输入参数可以是一个或多个。expression: 返回的表达式它会自动返回不需要 return 关键字。