阅读量: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}
力扣题目-两数之和
给定一个整数数组 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')