蓝桥杯算法之基础知识(5)

目录

Ⅰ.in方法的使用

Ⅱ.字典的使用

[Ⅲ.1MB 、KB、 B、 b(即bit)的转换(必学)](#Ⅲ.1MB 、KB、 B、 b(即bit)的转换(必学))

Ⅳ.闰年or平年

Ⅴ.count和counter方法

[1. count() 方法的使用场景](#1. count() 方法的使用场景)

[2. Counter 类的介绍](#2. Counter 类的介绍)

[3. count() 与 Counter 的区别](#3. count() 与 Counter 的区别)

[4. Counter 的高级应用](#4. Counter 的高级应用)

5.Counter的另一种使用

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

Ⅶ.格式化字符串format

Ⅷ.itertools迭代器

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

Ⅸ.笛卡尔积

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


Ⅰ.in方法的使用

在 Python 中,in 是一个用于检查某个元素是否存在于某个容器(如列表、字符串、元组、字典、集合等)中的关键字。

它的使用非常简单且灵活,以下是 in 的常见用法和示例。

1. 在列表中使用 in

检查某个元素是否在列表中:

复制代码
PYTHON
my_list = [1, 2, 3, 4, 5]
print(3 in my_list)  # 输出:True
print(6 in my_list)  # 输出:False

2. 在字符串中使用 in

检查某个子字符串是否在字符串中:

复制代码
PYTHON
my_string = "hello world"
print("hello" in my_string)  # 输出:True
print("python" in my_string)  # 输出:False

3. 在元组中使用 in

检查某个元素是否在元组中:

复制代码
PYTHON
my_tuple = (1, 2, 3, 4, 5)
print(3 in my_tuple)  # 输出:True
print(6 in my_tuple)  # 输出:False

4. 在字典中使用 in

检查某个键是否在字典中:

复制代码
PYTHON
my_dict = {"name": "Alice", "age": 25}
print("name" in my_dict)  # 输出:True
print("city" in my_dict)  # 输出:False
注意:in 默认检查字典的键,而不是值。如果需要检查值,可以使用 in my_dict.values():

PYTHON
print("Alice" in my_dict.values())  # 输出:True

5. 在集合中使用 in

检查某个元素是否在集合中:

复制代码
PYTHON
my_set = {1, 2, 3, 4, 5}
print(3 in my_set)  # 输出:True
print(6 in my_set)  # 输出:False

6. 在范围(range)中使用 in

检查某个数字是否在 range 中:

复制代码
PYTHON
my_range = range(1, 10)
print(5 in my_range)  # 输出:True
print(10 in my_range)  # 输出:False

7. in 的否定形式:not in

检查某个元素是否不在容器中:

复制代码
PYTHON
my_list = [1, 2, 3, 4, 5]
print(6 not in my_list)  # 输出:True
print(3 not in my_list)  # 输出:False

8. in 的使用场景

复制代码
条件判断:
PYTHON
if "hello" in my_string:
    print("Found!")
列表推导式:
PYTHON
filtered_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"))  # 3
print(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)

Ⅸ.笛卡尔积

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

相关推荐
晨晖21 小时前
顺序查找:c语言
c语言·开发语言·算法
LYFlied1 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
Salt_07282 小时前
DAY44 简单 CNN
python·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
货拉拉技术2 小时前
AI拍货选车,开启拉货新体验
算法
MobotStone2 小时前
一夜蒸发1000亿美元后,Google用什么夺回AI王座
算法
Wang201220132 小时前
RNN和LSTM对比
人工智能·算法·架构
xueyongfu2 小时前
从Diffusion到VLA pi0(π0)
人工智能·算法·stable diffusion
永远睡不够的入2 小时前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems95272 小时前
二叉树深搜算法练习(一)
数据结构·算法
sin_hielo2 小时前
leetcode 3074
数据结构·算法·leetcode