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

avatar
作者
筋斗云
阅读量:0

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')

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!