【Python】算法竞赛知识点笔记 (持续更新)

g = [list(input().strip()) for _ in range(n)]:

  • 执行 n 次循环,每次循环都会:
    • 从用户输入中读取一行数据。input()
    • 去除该行数据两端的空白字符。strip()
    • 将这行数据转换为字符列表(每个字符是列表的一个元素)。
  • 最终返回一个包含 n 个列表的列表,每个内部列表是用户输入的每一行的字符组成的列表。
sort(reverse=True, key=lambda x: x[0]) :

按照每个元素的第一个值进行降序排序

其中,key=lambda x: x[0] 表示对每个元素(假设是元组或类似对象)提取第一个元素来进行排序,而 reverse=True 则表示按降序排列。

import collections

1. deque — 双端队列:可以在队列两端高效地插入和删除元素的数据结构。它的插入和删除操作在两端都为 O(1) 时间复杂度,而普通的 list 在开头插入和删除元素时是 O(n) 的。

  • append(x):在队右端添加 x
  • appendleft(x):在队左端添加 x
  • pop():从队右删除并返回元素。
  • popleft():从队左删除并返回元素。

2. Counter — 计数器

Counter 是一个子类化的字典,用于统计对象的出现次数。比如计算某个元素的出现次数、返回最常见的元素等。

常见操作:
  • Counter(iterable):根据可迭代对象创建计数器。
  • update(iterable):通过传入一个新的可迭代对象,更新计数器。
  • most_common(n)返回出现次数最多的 n 个元素。
  • elements()返回所有的元素,按照计数器中的频率排列。

3. OrderedDict — 有序字典

OrderedDictdict 的一个子类,它保持字典元素的插入顺序。 允许按插入顺序操作字典中的元素。

常见操作:
  • move_to_end(key, last=True):将指定的键移动到字典的末尾(或者开头)。
  • popitem(last=True):删除并返回字典中的一项,如果 last=True,返回最后一项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值