蓝桥杯算法之基础知识(5)
目录
Ⅰ.in方法的使用
Ⅱ.字典的使用
Ⅲ.1MB 、KB、 B、 b(即bit)的转换(必学)
Ⅳ.闰年or平年
Ⅴ.count和counter方法
1. count() 方法的使用场景
2. Counter 类的介绍
3. count() 与 Counter 的区别
4. Counter 的高级应用
5.Counter的另一种使用
Ⅵ.max和min的使用---可以直接连用max(max(lst))
Ⅶ.格式化字符串format
Ⅷ.itertools迭代器
应用实例:使用itertools求前缀和S(n)
Ⅸ.笛卡尔积
Ⅹ.无穷小和无穷大的表示方法
Ⅰ.in方法的使用
在 Python 中,in 是一个用于检查某个元素是否存在于某个容器(如列表、字符串、元组、字典、集合等)中的关键字。
它的使用非常简单且灵活,以下是 in 的常见用法和示例。
1. 在列表中使用 in
检查某个元素是否在列表中:
PYTHONmy_list = [1, 2, 3, 4, 5]print(3 in my_list) # 输出:Trueprint(6 in my_list) # 输出:False
2. 在字符串中使用 in
检查某个子字符串是否在字符串中:
PYTHONmy_string = \"hello world\"print(\"hello\" in my_string) # 输出:Trueprint(\"python\" in my_string) # 输出:False
3. 在元组中使用 in
检查某个元素是否在元组中:
PYTHONmy_tuple = (1, 2, 3, 4, 5)print(3 in my_tuple) # 输出:Trueprint(6 in my_tuple) # 输出:False
4. 在字典中使用 in
检查某个键是否在字典中:
PYTHONmy_dict = {\"name\": \"Alice\", \"age\": 25}print(\"name\" in my_dict) # 输出:Trueprint(\"city\" in my_dict) # 输出:False注意:in 默认检查字典的键,而不是值。如果需要检查值,可以使用 in my_dict.values():PYTHONprint(\"Alice\" in my_dict.values()) # 输出:True
5. 在集合中使用 in
检查某个元素是否在集合中:
PYTHONmy_set = {1, 2, 3, 4, 5}print(3 in my_set) # 输出:Trueprint(6 in my_set) # 输出:False
6. 在范围(range)中使用 in
检查某个数字是否在 range 中:
PYTHONmy_range = range(1, 10)print(5 in my_range) # 输出:Trueprint(10 in my_range) # 输出:False
7. in 的否定形式:not in
检查某个元素是否不在容器中:
PYTHONmy_list = [1, 2, 3, 4, 5]print(6 not in my_list) # 输出:Trueprint(3 not in my_list) # 输出:False
8. in 的使用场景
条件判断:PYTHONif \"hello\" in my_string: print(\"Found!\")列表推导式:PYTHONfiltered_list = [x for x in my_list if x in {2, 3, 5}]
Ⅱ.字典的使用
Ⅲ.1MB 、KB、 B、 b(即bit)的转换(必学)
Ⅳ.闰年or平年
Ⅴ.count和counter方法
1. count()
方法的使用场景
count()
主要用于统计某个特定元素在字符串、列表或元组中出现的次数。
(1) count()
在字符串中的使用:
word = \"banana\"print(word.count(\"a\")) # 3print(word.count(\"na\")) # 2
解释:
-
\"a\"
在\"banana\"
中出现 3 次。 -
\"na\"
作为子字符串出现 2 次。
(2) count()
在列表中的使用:
nums = [1, 2, 3, 4, 2, 2, 5]print(nums.count(2)) # 3
解释:
-
2
在列表中出现 3 次。
(3) count()
在元组中的使用:
tup = (1, 2, 2, 3, 4, 2)print(tup.count(2)) # 3
2. Counter
类的介绍
Counter
是 collections
模块中的一个计数器工具,适用于统计可迭代对象中每个元素的出现次数,返回一个类似字典的对象,其中键是元素,值是该元素出现的次数。
Counter
的基本使用:
from collections import Counterword = \"banana\"counter = Counter(word) # 统计字符出现次数print(counter) # 输出:Counter({\'a\': 3, \'n\': 2, \'b\': 1})
解释:
-
Counter
自动计算\"banana\"
中每个字符的出现次数,并返回Counter
类型对象。
Counter
在列表中的使用:
nums = [1, 2, 3, 2, 2, 4, 3, 1, 5]counter = Counter(nums)print(counter) # 输出:Counter({2: 3, 1: 2, 3: 2, 4: 1, 5: 1})
3. count()
与 Counter
的区别
count()
Counter
4. Counter
的高级应用
(1) 找出出现最多的 n
个元素 (most_common()
)
word = \"banana\"counter = Counter(word)print(counter.most_common(1)) # 输出:[(\'a\', 3)],表示 \'a\' 出现了 3 次,且是最多的
(2) 统计列表中最常出现的前 n
个元素:
nums = [1, 2, 3, 2, 2, 4, 3, 1, 5]counter = Counter(nums)print(counter.most_common(2)) # 输出:[(2, 3), (1, 2)]# 说明:元素 2 出现 3 次,元素 1 出现 2 次
(3) Counter
可以直接进行出现次数加减运算:
c1 = Counter(\"banana\")c2 = Counter(\"band\")print(c1 + c2) # 输出:Counter({\'a\': 4, \'n\': 3, \'b\': 2, \'d\': 1})
解释:
-
c1
统计\"banana\"
-
c2
统计\"band\"
-
相加后,统计结果合并。
5.Counter的另一种使用
》斜线为i-j 对应着y=-x----可以想一下线代矩阵里面的正对角线就是正斜线
反斜线为i+j 对应着y=x
其中r和l一开始都是默认的字典性