1.collections
1.1 Counter
用于计数可哈希对象。
https://leetcode.cn/problems/majority-element/?envType=study-plan-v2&envId=top-interview-150
from collections import Counter
s=
c = Counter('gallahad')
print(c)
1.2.deque:
双端队列,支持从两端添加和弹出元素。
from collections import deque
d = deque()
d.append('a')
d.appendleft('b')
print(d) # 输出:deque(['b', 'a'])
1.3.OrderedDict:
这是一个字典子类,它保持了元素被插入时的顺序。
from collections import OrderedDict
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
print(od) # 输出:OrderedDict([('a', 1), ('b', 2), ('c', 3)])
2.二维数组排序
2.1 sorted
按照二维数组的每个子列表的第一个元素进行排序:
# 假设你有以下的二维数组
arr = [[3, 'b'], [1, 'a'], [2, 'c']]
# 使用 sorted 函数,并提供一个 key 函数来指定排序规则
arr_sorted = sorted(arr, key=lambda x: x[0])
print(arr_sorted) # 输出: [[1, 'a'], [2, 'c'], [3, 'b']]
使用了lambda函数作为key参数的值。lambda函数接受一个子列表作为输入,并返回我们想要根据其进行排序的元素(在这个例子中是子列表的第一个元素)。
2.2 sort
按照二维数组的每个子列表的第二个元素进行排序(假设这些元素是可以比较的,如数字或字符串):
# 假设你有以下的二维数组
arr = [[3, 'apple'], [1, 'banana'], [2, 'cherry']]
# 使用 sorted 函数,并提供一个 key 函数来指定排序规则
arr_sorted = sorted(arr, key=lambda x: x[1])
print(arr_sorted) # 输出: [[1, 'banana'], [2, 'cherry'], [3, 'apple']]
3. Lambda表达式
Python 使用 lambda 来创建匿名函数。
lambda 函数是一种小型、匿名的、内联函数,它可以具有任意数量的参数,但只能有一个表达式。
匿名函数不需要使用 def 关键字定义完整函数。
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # 输出: [1, 4, 9, 16, 25]
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) #筛选偶数
print(even_numbers) # 输出:[2, 4, 6, 8]