算法笔记--知识点记录2

news2024/11/17 18:13:12

enumerate函数

enumerate 是 Python 中的一个内置函数,它用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,通常用在 for 循环当中。

使用 enumerate 可以同时获得每个元素的索引和值,这在处理需要索引的场景下非常有用。

enumerate(iterable, start=0)
  • iterable:一个序列、迭代器或其他支持迭代的对象。
  • start:下标起始位置,默认为 0。

返回值:

enumerate 返回一个枚举对象,该对象包含每个元素的索引和值。

示例:

seasons = ['Spring', 'Summer', 'Fall', 'Winter']  
  
# 使用 enumerate 获取索引和值  
for index, season in enumerate(seasons):  
    print(f"Index: {index}, Season: {season}")  
  
# 输出  
# Index: 0, Season: Spring  
# Index: 1, Season: Summer  
# Index: 2, Season: Fall  
# Index: 3, Season: Winter

使用场景

  • 在循环中使用元素的索引时。
  • 同时访问数据及其索引时。
  • 在循环中跟踪迭代次数时。

创建和使用Python字典(哈希表)

在Python中,哈希表通常是通过字典(dict)来实现的。

字典是一种可变容器模型,可以存储任意类型的对象,如字符串、数字、元组等其他容器模型。

字典的每个键值对(key-value pair)用冒号(:)分隔,每个对之间用逗号(,)分隔,整个字典包括在花括号({})中。

字典是Python中实现哈希表的主要方式

# 创建一个空字典  
my_dict = {}  
  
# 创建一个带有一些键值对的字典  
my_dict = {  
    'name': 'John',  
    'age': 30,  
    'city': 'New York'  
}  
  
# 访问字典中的元素  
print(my_dict['name'])  # 输出: John  
  
# 添加一个新的键值对  
my_dict['gender'] = 'Male'  
  
# 更新一个已存在的键值对  
my_dict['age'] = 31  
  
# 删除一个键值对  
del my_dict['city']  
  
# 遍历字典的键值对  
for key, value in my_dict.items():  
    print(f"{key}: {value}")  
  
# 遍历字典的键  
for key in my_dict.keys():  
    print(key)  
  
# 遍历字典的值  
for value in my_dict.values():  
    print(value)

同时使用 enumerate 和哈希表

在遍历列表的来记录每个元素的出现次数:

# 定义一个列表  
nums = [1, 2, 3, 2, 4, 3, 5]  
  
# 初始化一个哈希表来记录每个元素的出现次数  
count_dict = {}  
  
# 使用 enumerate 遍历列表  
for index, num in enumerate(nums):  
    # 如果元素已经在哈希表中,则增加其计数  
    if num in count_dict:  
        count_dict[num] += 1  
    # 否则,将元素添加到哈希表中,并设置计数为 1  
    else:  
        count_dict[num] = 1  
  
# 打印结果  
print(count_dict)

# {1: 1, 2: 2, 3: 2, 4: 1, 5: 1}

力扣题目-两数之和

1. 两数之和 - 力扣(LeetCode)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        # 初始化了一个空的哈希表(字典),用于存储遍历过的数字及其索引
        hashtable = dict()
        # 使用enumerate函数遍历nums列表,同时获取每个元素的索引i和值num
        for i, num in enumerate(nums):
            if target - num in hashtable:
                # 如果找到了满足条件的两个数,就返回它们的索引。hashtable[target - num]是之前遍历到的与当前数num相加等于target的数的索引,i是当前数的索引。
                return [hashtable[target - num], i]
            # 如果当前遍历的数num与之前的任何数的和都不等于target,就将这个数及其索引添加到哈希表中,以便后续的检查
            hashtable[nums[i]] = i
        # 如果遍历完整个数组都没有找到满足条件的两个数,就返回一个空列表。
        return []

获取当前时间

import time  # 导入time模块  
  
# 使用time.strftime和time.localtime来获取并格式化当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) ,' xxxx')

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

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

相关文章

什么是C++活锁?

听过太多的死锁(Deadlock),今天来聊聊什么是C活锁(Livelock)。 C中的活锁(Livelock)并非特指C语言本身的一个概念,而是并发编程和操作系统中可能遇到的一种现象。活锁指的是任务或者…

数据库 执行sql添加删除字段

添加字段: ALTER TABLE 表明 ADD COLUMN 字段名 类型 DEFAULT NULL COMMENT 注释 AFTER 哪个字段后面; 效果: 删除字段: ALTER TABLE 表明 DROP COLUMN 字段;

【C++】C++入门知识(上)

好久不见&#xff0c;本篇介绍一些C的基础&#xff0c;没有特别的主题&#xff0c;话不多说&#xff0c;直接开始。 1.C的第一个程序 C中需要把定义文件代码后缀改为 .cpp 我们在 test.cpp 中来看下面程序 #include <stdio.h> int main() {printf("hello world\n…

Linux文件与相关函数的知识点3

main函数参数 int main(int argc,char *argv[]) { return 0; } C语言规定了main函数的参数只能有两个&#xff0c;一个是argc,一个是argv并且&#xff0c;argc只能是整数&#xff0c;第二个必须是指向字符 串的指针数组。 argc: 参数表示命令行中参数的个数&#xff0…

【建议收藏】CTF网络安全夺旗赛刷题指南(非常详细)零基础入门到精通,收藏这一篇就够了

在数字化浪潮汹涌澎湃的今天&#xff0c;网络安全已成为国家、企业和个人无法忽视的重要议题。为了挖掘和培养网络安全人才&#xff0c;一场场紧张刺激、充满智慧的CTF&#xff08;Capture The Flag&#xff09;安全竞赛应运而生。 一、CTF安全竞赛简介 CTF安全竞赛&#xff0c…

鸿蒙仓颉语言之【安全密码库crypto4cj】功能示例

功能示例 MD5使用样例 from crypto4cj import md5cj.*main() { var md: Array<UInt8> Array<UInt8>(16, item: 0)var result: String String(Array<Char>(33, item: 0))var str: String "helloworld"var ret md5(str.toUtf8Array(), md)r…

lua 游戏架构 之 游戏 AI (六)ai_auto_skill

定义一个为ai_auto_skill的类&#xff0c;继承自ai_base类。ai_auto_skill类的目的是在AI自动战斗模式下&#xff0c;根据配置和条件自动选择并使用技能。 lua 游戏架构 之 游戏 AI &#xff08;一&#xff09;ai_base-CSDN博客文章浏览阅读379次。定义了一套接口和属性&#…

ASCII码图片

在许多计算机语言中&#xff0c;比较字母、字符串大小时&#xff0c;都会运用到ASCII码。而这是很多创客容易遗忘的&#xff0c;今天发给大家ASCII码大全图片&#xff0c;记得收藏

Redis是多线程还是单线程?

文章目录 1、用户态和内核态2、阻塞IO3、非阻塞IO4、IO多路复用4.1 select4.2 poll4.3 epoll4.4 epoll中的ET和LT4.5 epoll的服务端流程 5、信号驱动6、异步IO7、对比8、Redis是单线程的吗&#xff1f;9、单线程多线程网络模型变更 1、用户态和内核态 1、ubuntu和Centos 都是Li…

Golang 知识结构图

总结Go的入门知识结构&#xff0c;如下图所示&#xff1a;

(史上最全的)Spring6框架学习教程

一、什么是Spring 1.javaWeb框架发展史 1、ServletJSPJavaBean(跳转页面、业务逻辑判断、数据库查询) 2、MVC三层架构(M Model pojo(User)V-view(USP)C-(controller-servlet)) (web-跳转页面service-业务逻辑判断 new UserService0;dao-数据库查询 new UserDao(); ) 3、使用…

【C++】—— 类和对象(一)

【C】—— 类和对象&#xff08;一&#xff09; 1、类的定义1.1、类定义1.1.1、类定义格式1.1.2、成员变量的标识1.1.3、C 中的 s t r u c t struct struct1.1.4、C 中的内联函数1.1.5、总结 1.2、访问限定符1.3、类域 2、实例化2.1、实例化的概念2.2、对象大小2.2.1、对象的大…

黑神话悟空游戏什么时候上线能玩 黑神话悟空是哪个公司 苹果电脑能玩黑神话悟空吗

《黑神话&#xff1a;悟空》是一款以中国神话为背景的动作角色扮演游戏。故事取材于中国古典小说“四大名著”之一的《西游记》。 你将扮演一位“天命人”&#xff0c;为了探寻昔日传说的真相&#xff0c;踏上一条充满危险与惊奇的西游之路。 一、《黑神话&#xff1a;悟空》什…

【Linux系统】线程的互斥

互斥 互斥概念 多个线程能够看到的资源称为共享资源&#xff0c;那我们需要对这种资源进行保护&#xff0c;需要用到互斥&#xff01;&#xff01;&#xff01; 见一见多线程访问的问题 --- 抢票问题 int tickets 1000;void route(const std::string& name) {while(tr…

Docker容器的数据管理

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 我们在使用Docker的过程中&#xff0c;往往需要能查看容器内应用产生的数据&#xff0c;或者需要把容器内的数据进行备份&#x…

python学习笔记——数字

一、数字概述 1.Python 数字数据类型用于存储数值。 数据类型是不允许改变的&#xff0c;这就意味着如果改变数字数据类型的值&#xff0c;将重新分配内存空间。 2.可以使用del语句删除一些数字对象的引用。 del var1[,var2[,var3[....,varN]]]3.可以通过使用del语句删除单个或…

【python014】Python爬取并解析潮汐天气简报-潮历数据

1.欢迎点赞、关注、批评、指正&#xff0c;互三走起来&#xff0c;小手动起来&#xff01; 【python014】Python爬取并解析潮汐天气简报-潮历数据&#xff0c;源代码下载【python014】Python爬取并解析潮汐天气简报-潮历数据&#xff0c;源代码下载【python014】Python爬取并解…

Aria2 任意文件写入漏洞

目录 Aria2介绍漏洞描述漏洞复现 Aria2介绍 Aria2是一个在命令行下运行&#xff0c;多协议&#xff0c;多来源下载工具&#xff08;HTTP / HTTPS&#xff0c;FTP&#xff0c;BitTorrent&#xff0c;Metalink&#xff09;&#xff0c;内建XML-RPC用户界面。Aria提供RPC服务器&a…

2.9.GoogLeNet

GoogLeNet ​ 主要解决了什么样大小的卷积核是最合适的&#xff1a;有时使用不同大小的卷积核组合是有利的 1.Inception块 ​ Inception块由四条并行路径组成。 前三条路径使用窗口大小为11、33和55的卷积层&#xff0c;从不同空间大小中提取信息。 ​ 中间的两条路径在输入…

任务管理无忧:2024年最佳7款待办事项管理软件

本文将分享2024年值得关注的7大优质待办事项管理软件&#xff1a;PingCode、Worktile、滴答清单、时光序、好用便签、Todoist、ClickUp。 在寻找完美的待办事项管理工具时&#xff0c;你是否感觉到选择众多却难以决断&#xff1f;无论是保持日程有序&#xff0c;还是优化团队协…