蓝桥杯算法之基础知识(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
检查某个元素是否在列表中:

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)

Ⅸ.笛卡尔积

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97784.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lesson52:CSS进阶指南:雪碧图与边框技术的创新应用

目录 一、CSS雪碧图:从性能优化到交互革命 1.1 技术原理与现代价值 1.2 2025年实现工具与自动化流程 1.2.1 构建工具集成方案 1.2.2 在线生成工具推荐 1.3 高级应用案例与代码实现 1.3.1 多状态按钮系统 1.3.2 响应式雪碧图实现 1.4 最佳实践与性能优化 二…

案例——从零开始搭建 ASP.NET Core 健康检查实例

1. 项目创建与基础设置 创建新项目 首先,创建一个新的 ASP.NET Core Web API 项目: dotnet new webapi -n HealthCheckDemo cd HealthCheckDemo添加必要的 NuGet 包 添加健康检查相关的 NuGet 包: dotnet add package Microsoft.AspNetCore.D…

【Java生产级避坑指南】8. Tomcat线程池下的内存地雷:ThreadLocal泄漏检测与实战解决

摘要:某金融交易系统(Spring Boot 2.7 + Tomcat 9)在线上运行时出现严重内存泄漏:堆内存(4GB)72小时内耗尽并触发OOM,日均200万请求场景下,Full GC频率从正常1次/天飙升至6次/小时。排查发现,根源是ThreadLocal未清理——Tomcat线程池复用线程时,UserInfo等大对象被T…

云端职达:你的AI求职专属猎头,颠覆传统招聘模式

在求职的“金三银四”或“金九银十”,每一分每一秒都弥足珍贵。面对浩如烟海的招聘信息,你是否还在花费大量时间一条条筛选、重复投递简历,最终却常常石沉大海?传统求职方式的低效和“已读不回”的窘境,让许多求职者感…

Parasoft C/C++test如何实现开发环境内嵌的安全检测

Parasoft 作为嵌入式质量与安全领域的全球领先供应商,其 C/Ctest 平台依托 IDE 级原生集成、实时合规检测引擎与缺陷闭环治理框架,将传统静态应用安全测试由项目末期集中执行前移至编码阶段,显著降低缺陷修复成本并缩短认证周期,为…

leetcode-每日一题-人员站位的方案数-C语言

3025. 人员站位的方案数 I 输入&#xff1a; 2 < n < 50 points[i].length 2 0 < points[i][0], points[i][1] < 50 points[i] 点对两两不同。 // 按x降序&#xff0c;按y升序 int cmp(const void *a, const void *b) {int *p *(int **)a;int *q *(int **)b;if(…

ClickHouse中的ON CLUSTER关键字

目录 ClickHouse中的ON CLUSTER关键字 前置基础 ClickHouse 中的 MergeTree 与 ReplicatedMergeTree ON CLUSTER 查询在集群上的正确用法(为什么 查询/写入数据 不用 ON CLUSTER) 与不使用 ON CLUSTER 的区别 注意事项与坑 常用配套命令 ClickHouse中的ON CLUSTER关键字 前置…

Python绘图动态可视化:实时音频流

在数据可视化中&#xff0c;动画是一种非常有效的方式&#xff0c;可以帮助我们更好地理解数据的变化和动态过程。Python 的 matplotlib.animation 模块提供了强大的功能来创建动画。本文将介绍如何使用 matplotlib.animation 创建简单的动画&#xff0c;并展示一个更复杂的实时…

【Vue2 ✨】Vue2 入门之旅(七):事件处理

在前几篇文章中&#xff0c;我们学习了指令与过滤器。本篇将介绍 事件处理&#xff0c;重点包括 v-on、事件修饰符以及键盘事件。 目录 事件绑定 v-on事件修饰符键盘事件小结 事件绑定 v-on Vue 使用 v-on&#xff08;缩写 &#xff09;来监听事件。 <div id"app&qu…

高效数据传输的秘密武器:Protobuf

当涉及到网络通信和数据存储时&#xff0c;数据序列化一直都是一个重要的话题&#xff1b;特别是现在很多公司都在推行微服务&#xff0c;数据序列化更是重中之重&#xff0c;通常会选择使用 JSON 作为数据交换格式&#xff0c;且 JSON 已经成为业界的主流。但是 Google 这么大…

腾讯混元翻译大模型Hunyuan-MT-7B:重塑跨语言沟通的技术革命

腾讯混元翻译大模型Hunyuan-MT-7B&#xff1a;重塑跨语言沟通的技术革命 腾讯混元Hunyuan-MT-7B大模型的发布标志着机器翻译领域进入全新时代&#xff0c;本文将深入解析这一突破性技术如何实现30种语言翻译冠军的卓越表现 一、Hunyuan-MT-7B核心架构解析 1.1 基于Transformer的…

End-To-End 之于推荐-kuaishou OneRec2 笔记

End_To_End 之于推荐onerec里&#xff0c;快手利用大模型做了推荐架构的革命&#xff0c;几个月后&#xff0c;v2之于v1是一些技术细节进行了进一步迭代&#xff0c;主要是以下两个方面&#xff1a; 1. 架构层面的突破&#xff1a;Lazy Decoder-Only 背景问题&#xff1a;V1 的…

【LeetCode】3670. 没有公共位的整数最大乘积 (SOSDP)

3670. 没有公共位的整数最大乘积 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; SOSDP 本题我们显然不能枚举每一个数对&#xff0c;n 的复杂度显然超时&#xff0c;所以考虑优化 我们考虑一个二进制数 mask&#xff0c;因为我们必须要选没有任…

Sping Web MVC入门

1.什么是Sping Web MVC1.1MVC定义2.什么是Spring MVC

LLM面试50问:NLP/RAG/部署/对齐/安全/多模态全覆盖

太好了!下面按你点名的 6 大主题(NLP、检索/RAG、部署、对齐、 安全、多模态)给出深度版答案 + 关键公式/推导 + 最小可跑示例代码 + 常见坑。都尽量精炼到“拿来即用/面试可白板推导”的粒度。 NLP(架构、位置编码、指令跟随) 1) RoPE 长上下文与缩放 要点:RoPE 将位置…

计算机网络技术(四)完结

七&#xff0c;虚拟局域网VLAN1&#xff0c;VLAN概述通过设置虚拟局域网来实现&#xff0c;pc之间实现快速安全通信。对比说明&#xff1a;之前交换机的广播来实现通信&#xff0c;但同意也带来了几个问题&#xff0c;过大的广播域&#xff0c;造成了带宽的浪费&#xff0c;过大…

VibeVoice 部署全指南:Windows 下的挑战与完整解决方案

VibeVoice 部署全指南&#xff1a;Windows 下的挑战与完整解决方案 目标读者&#xff1a;希望在本地部署 VibeVoice 进行文字转语音&#xff08;TTS&#xff09;的开发者、研究人员或爱好者 关键词&#xff1a;VibeVoice、FlashAttention-2、Windows 部署、CUDA 加速、FFmpeg、…

一次别开生面的Java面试

场景描述&#xff1a; 在一家知名互联网大厂的面试室中&#xff0c;谢飞机&#xff0c;一个自信满满的程序员&#xff0c;正在经历一场别开生面的Java面试。面试官以严肃的态度开始了这场技术问答。第一轮&#xff1a;基础知识问答 面试官&#xff1a;"我们先从简单的开始…

web自动化测试(selenium)

目录 测试前的准备 驱动 安装驱动管理 selenium库 使用selenium编写代码 自动化测试常用函数 元素的定位 cssSelector xpath 查找元素 点击/提交对象 模拟按键输入 清除文本内容 获取文本信息 获取当前页面标题和URL 窗口 切换窗口 窗口设置大小 屏幕截图 …

民间药方偏方网站整站源码 带数据PHP版

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 民间药方偏方网站整站源码 带数据PHP版 这是一个聚焦中国民间药方的平台。平台设有搜索功能&#xff0c;方便用户查找药方&#xff0c;还对药方进行了内科、外科、肿瘤等多类分类&#x…