empty_dict = {} # 空字典
person = {"name": "张三", "age": 25} # 基础字典
nested_dict = {"info": {"city": "北京"}} # 嵌套字典
print(person["name"]) # 输出:张三
person["age"] = 26 # 直接修改
person["city"] = "上海" # 新增键值对(若键不存在)
del person["age"] # 删除指定键
age = person.pop("city") # 删除并返回值
print("name" in person) # 输出:True
用简洁语法快速生成字典,替代复杂的循环和条件判断。
# 将列表转换为字典(键为元素,值为长度)
words = ["apple", "banana", "cherry"]
length_dict = {word: len(word) for word in words}
print(length_dict) # 输出:{'apple': 5, 'banana': 6, 'cherry': 6}
# 筛选符合条件的键值对
even_dict = {k: v for k, v in length_dict.items() if v % 2 == 0}
print(even_dict) # 输出:{'banana': 6, 'cherry': 6}
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
merged = dict1 | dict2 # 输出:{'a': 1, 'b': 3, 'c': 4}
merged = {**dict1, **dict2} # 后面的键值对会覆盖前面的
print(person.get("age", 0)) # 输出:25(键存在)
print(person.get("gender", "男")) # 输出:男(键不存在)
from collections import defaultdict
counts = defaultdict(int) # 默认值为0
counts["apple"] += 1
print(counts["apple"]) # 输出:1(无需预先初始化)
以下是Python字典最常用的方法及其用法:
方法 | 作用 | 示例 |
keys() | 返回所有键的视图 | print(person.keys()) → dict_keys(['name', 'age']) |
values() | 返回所有值的视图 | print(person.values()) → dict_values([25, '上海']) |
items() | 返回所有键值对的视图 | print(person.items()) → dict_items([('name', '张三'), ('city', '上海')]) |
update(other) | 合并另一个字典到当前字典 | person.update({"age": 26}) → 更新age为26 |
pop(key[, default]) | 删除并返回指定键的值 | age = person.pop("age") → 返回25,person中age被删除 |
popitem() | 随机删除并返回一个键值对 | key, value = person.popitem() → 删除最后一个键值对 |
clear() | 清空字典 | person.clear() → {} |
copy() | 浅拷贝字典 | new_dict = person.copy() |
fromkeys(seq[, value]) | 用序列创建新字典,值默认为value | seq = ["a", "b"]; new = dict.fromkeys(seq, 0) → {'a': 0, 'b': 0} |
text = "Python is great and Java is also great"
words = text.split()
# 统计词频
frequency = {}
for word in words:
frequency[word] = frequency.get(word, 0) + 1
print(frequency) # 输出:{'Python': 1, 'is': 2, 'great': 2, 'and': 1, 'Java': 1, 'also': 1}
from collections import OrderedDict
class LRUCache:
def __init__(self, capacity):
self.cache = OrderedDict()
self.capacity = capacity
def get(self, key):
if key not in self.cache:
return -1
# 将访问的键移动到末尾(最近使用)
self.cache.move_to_end(key)
return self.cache[key]
def put(self, key, value):
if key in self.cache:
self.cache.move_to_end(key)
self.cache[key] = value
if len(self.cache) > self.capacity:
# 删除最旧的键
self.cache.popitem(last=False)
cache = LRUCache(2)
cache.put(1, 1)
cache.put(2, 2)
cache.get(1) # 返回1
cache.put(3, 3) # 删除键2
cache.get(2) # 返回-1(已删除)
data = [
{"id": 1, "name": "Alice", "age": 25},
{"id": 2, "name": "Bob", "age": "unknown"},
{"id": 3, "name": "Charlie"}
]
# 过滤掉age字段非数字的项
clean_data = [item for item in data if isinstance(item.get("age"), int)]
print(clean_data) # 输出:[{'id': 1, 'name': 'Alice', 'age': 25}]
value = person.get("gender", "未知")
try:
print(person["gender"])
except KeyError:
print("键不存在!")
for key, value in person.items():
print(f"{key}: {value}")
import json
# 字典转JSON字符串
data = {"name": "张三", "age": 25}
json_str = json.dumps(data) # 输出:'{"name": "张三", "age": 25}'
# JSON字符串转字典
loaded_data = json.loads(json_str)
print(loaded_data["name"]) # 输出:张三
用字典统计字符串"apple banana apple cherry"中各单词的出现次数。
答案:
text = "apple banana apple cherry"
counts = {}
for word in text.split():
counts[word] = counts.get(word, 0) + 1
print(counts) # 输出:{'apple': 2, 'banana': 1, 'cherry': 1}
合并以下三个字典:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict3 = {"d": 5}
答案:
merged = {**dict1, **dict2, **dict3} # Python 3.5+
# 或 Python 3.9+:merged = dict1 | dict2 | dict3
print(merged) # 输出:{'a': 1, 'b': 3, 'c': 4, 'd': 5}
给定字典{"a": 1, "b": 2},实现通过值查找键(如输入2返回"b")。
答案:
reverse_map = {v: k for k, v in original_dict.items()}
print(reverse_map # 输出:b
¥78.00
steam怪物猎人世界 怪物猎人冰原dlc 正版steam 怪物猎人世界本体加冰原 怪猎世界 全球激活码cdk下单秒发
¥59.00
Steam 上古卷轴OL高岛 上古卷轴Online DLC The Elder Scrolls Online: High Isle 国区cdkey 激活码
¥81.00
命运2 银币代充 微软xbox充值/steam充值银币 命运2 Destiny 2 CDK激活码 游戏银币 STEAM
¥16.80
PC中文正版 steam平台 国区 联机游戏 群星 Stellaris 全DLC 联邦 启示录 乌托邦 四海皆臣 激活码
¥55.00
PC中文Steam 古剑奇谭三Gujian3 国区全球CDKey激活码 古剑奇谭3 古剑3 古剑奇谭2古剑1
¥49.00
Steam 暖雪 国区激活码CDKey秒发 Warm Snow 游戏PC中文正版