字典的修改和新增 和查找

1. 字典的修改和新增

dict = {'age': 18, 'name': 'Tom', 'from': 'USA', 'hight': 180}
# 如果key存在则修改key对应的值  如果不存在 则添加此键值对
dict['hight'] = '170'
print(dict)

dict['年级'] = '实习'
print(dict)

2.字典的查找

dict = {'age': 18, 'name': 'Tom', 'from': 'USA', 'hight': 180}
# 1. [key]查找
# print(dict['age'])

# 2.函数
'''
1.get()  字典序列。get(key,默认值)  如果当前查找的key不存在则返回第二个参数(默认值) 如果省略第二个参数则返回none
2.keys()
3.values()
4.items()
'''
# 1.get  字典序列。get(key,默认值)
print(dict.get('name'))
print(dict.get('id', 2))
print(dict.get('id'))

# 2.keys() 查找字典中所有的key 返回可迭代对象
print(dict.keys())

# 3.values() 返回的是字典中所有的值  返回的是可迭代对象
print(dict.values())

# 4.items() 查找字典中所有的键值对 返回可迭代对象 里面的数据是元组 
print(dict.items())

<think>好的,用户现在想了解Python字典列表的常用操作。我需要先回顾之前对话的历史,看看有没有相关的上下文。之前用户问过如何用Python写五子棋软件,我给出了命令行图形界面的示例代码,里面用到了列表字典,比如二维数组表示棋盘,可能用户在学习过程中遇到了这两个数据结构,想进一步巩固基础。 接下来,用户的需求是“常用操作”,所以需要覆盖最基础且实用的方法,比如增删改查、遍历、排序等。用户可能是刚开始学习Python,所以需要解释清晰,示例明确。同时,用户可能希望比较字典列表的区别,或者了解它们各自适用的场景。 需要分清楚字典列表的不同点。列表是有序的,通过索引访问;字典是无序的,通过键访问。常用操作方面,列表的添加可以用appendinsert,删除用pop、remove、del;字典的添加直接赋值,删除用pop、del。遍历部分,列表用for循环,字典可能需要items()方法。 还要注意用户可能的深层需求,比如在五子棋项目中,棋盘用列表,而可能用字典来存储棋子的位置或者其他属性。所以示例可以贴近实际应用,比如用字典记录棋子位置颜色,用列表存储棋盘状态。 需要检查是否覆盖了所有常用操作,比如列表推导式、字典推导式,合并列表字典的方法,排序,以及一些内置函数如len、max、min等。同时,要提到两者的区别使用场景,帮助用户理解何时使用列表,何时使用字典。 可能用户在使用过程中遇到性能问题,比如查找元素时,列表是O(n),字典是O(1),这时候可以适当提及,但不用太深入,保持基础即可。另外,注意示例代码的正确性简洁性,确保用户能直接复制运行测试。 最后总结两者的对比,强调选择依据,帮助用户在实际编程中做出正确选择。避免使用复杂术语,保持语言口语化,结构清晰,分点列出,方便阅读。</think>以下是Python字典(dict)列表(list)的常用操作对比说明,包含典型场景的代码示例: --- ### 一、列表(List)基础操作 #### 1. 创建与访问 ```python lst = [1, 2, 3, "apple", True] # 创建 print(lst[0]) # 输出: 1 (正向索引) print(lst[-1]) # 输出: True (负向索引) ``` #### 2. 增删元素 ```python lst.append("new") # 末尾添加 → [1,2,3,"apple",True,"new"] lst.insert(2, 2.5) # 指定位置插入 → [1,2,2.5,3,...] lst.pop() # 删除末尾元素 → 返回"new" lst.remove(2) # 删除首个匹配值 → 删除数字2 del lst[1:3] # 删除切片范围元素 ``` #### 3. 遍历与推导式 ```python for item in lst: print(item) squares = [x**2 for x in range(10)] # 生成平方数列表 ``` #### 4. 常用方法 ```python lst.sort() # 排序(同类型元素) lst.reverse() # 反转顺序 lst.index("apple") # 查找元素索引 lst.count(3) # 统计元素出现次数 lst.extend(["a","b"]) # 合并列表 → [1,3,..."a","b"] lst.copy() # 创建浅拷贝 ``` --- ### 二、字典(Dict)基础操作 #### 1. 创建与访问 ```python dict1 = {"name": "Alice", "age": 25} # 标准创建 dict2 = dict(name="Bob", score=90) # 构造函数创建 print(dict1["name"]) # 输出: Alice print(dict1.get("gender", "unknown")) # 安全获取 → unknown ``` #### 2. 增删键值对 ```python dict1["gender"] = "female" # 新增键值对 dict1["age"] = 26 # 修改已有键值 del dict1["age"] # 删除键 val = dict1.pop("name") # 弹出指定键的值 dict1.clear() # 清空字典 ``` #### 3. 遍历操作 ```python for key in dict1: # 遍历键 print(key) for key, value in dict1.items(): # 同时遍历键值 print(f"{key}: {value}") values = [v for v in dict1.values()] # 值列表 ``` #### 4. 常用方法 ```python dict1.update({"city": "Paris"}) # 合并字典 keys = list(dict1.keys()) # 获取键列表 "age" in dict1 # 检查键是否存在 → True len(dict1) # 获取键值对数量 ``` --- ### 三、核心区别对比 | 特性 | 列表(List) | 字典(Dict) | |--------------------|----------------------------------|---------------------------------| | **存储方式** | 有序元素集合 | 无序键值对集合 | | **访问方式** | 通过数字索引访问 | 通过唯一键访问 | | **查找效率** | $O(n)$(遍历查找) | $O(1)$(哈希表直接定位) | | **内存占用** | 较低(仅存储值) | 较高(需存储键哈希结构) | | **典型应用场景** | 有序数据序列、同类数据集合 | 键值映射关系、快速查找 | --- ### 四、实用组合操作示例 #### 1. 列表与字典转换 ```python # 字典→列表(保留键值关系) dict_items = [ (k, v) for k, v in dict1.items() ] # 列表→字典(需要键值对) lst = [["a",1], ["b",2]] new_dict = dict(lst) ``` #### 2. 数据分组统计 ```python words = ["apple", "banana", "apple", "orange"] count_dict = {} for word in words: count_dict[word] = count_dict.get(word, 0) + 1 # 结果:{'apple':2, 'banana':1, 'orange':1} ``` #### 3. 嵌套数据结构 ```python # 字典值包含列表 students = { "class1": ["Alice", "Bob"], "class2": ["Charlie"] } # 列表包含字典 products = [ {"name": "phone", "price": 500}, {"name": "laptop", "price": 1200} ] ``` --- ### 五、选择依据建议 - 需要**维护顺序** → 优先选择列表 - 需要**快速查找** → 优先选择字典 - 存储**同类元素** → 选择列表 - 需要**描述属性** → 选择字典(如对象属性) - 数据规模较大时 → 字典查找效率优势更明显
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值