前言
博主在leetcode上刷题时发现题解中有很多没有见过的方法和函数,深感对python了解学习的不足,遂简要记录下这些方法,以便个人查阅
内容多为AI生成,还有一些自己的理解,若有错误或不当之处,望各位指正
Counter
在 Python 中,Counter是collections模块中的一个类,它主要用于方便地计数可哈希对象。以下是关于Counter的详细介绍:
创建对象
from collections import Counter
lst = [1, 2, 2, 3, 3, 3]
counter = Counter(lst)
print(counter) # Counter({3: 3, 2: 2, 1: 1})
常用方法和属性
- most_common(n)
返回一个列表,其中包含最常见的n个元素及其计数,按照计数从多到少排序。
counter = Counter([1, 2, 2, 3, 3, 3, 4, 4])
most_common = counter.most_common(2)
print(most_common) # [(3, 3), (2, 2)]
- elements()
返回一个迭代器,内容为创建对象时的迭代器
counter = Counter([1, 2, 2, 3])
elements = list(counter.elements())
print(elements) # [1, 2, 2, 3]
- items()
返回一个迭代器,包含计数器中的所有元素和其出现次数
from collections import Counter
counter = Counter({'apple': 3, 'banana': 2, 'orange': 1})
for item, count in counter.items():
print(f'{item}: {count}')
'''
apple: 3
banana: 2
orange: 1
'''
-
keys()
返回一个迭代器,包含计数器中所有的元素
由于counter基于哈希表实现,该方法与字典处keys相同 -
交集 并集运算
counter1 = Counter([1, 2, 2, 3])
counter2 = Counter([2, 3, 3, 4])
result = counter1 & counter2 #交集
print(result) # Counter({2: 1, 3: 1})
result = counter1 | counter2 #并集
print(result) # Counter({1: 1, 2: 2, 3: 3, 4: 1})
enumerate
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
enumerate(sequence, [start=0])
# start 默认为0
实例
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print i, element
"""
0 one
1 two
2 three
"""
map
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
map(function, iterable, ...)
实例
def square(x) : # 计算平方数
return x ** 2
map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
list(map(square, [1,2,3,4,5])) # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
除此之外map还可用于类型转换
常用于 a=list(map(int, input.split())