> 技术文档 > 蓝桥杯算法之基础知识(5)

蓝桥杯算法之基础知识(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 类的介绍

Countercollections 模块中的一个计数器工具,适用于统计可迭代对象中每个元素的出现次数,返回一个类似字典的对象,其中键是元素,值是该元素出现的次数

Counter 的基本使用:

from collections import Counter​word = \"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 适用对象 字符串、列表、元组 任何可迭代对象 统计方式 仅能统计一个元素的出现次数 统计所有元素的出现次数 返回值类型 整数(某个元素的出现次数) 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一开始都是默认的字典性

Ⅵ.max和min的使用---可以直接连用max(max(lst))

Ⅶ.格式化字符串format

Ⅷ.itertools迭代器

应用实例:使用itertools求前缀和S(n)

Ⅸ.笛卡尔积

Ⅹ.无穷小和无穷大的表示方法