一、自定义字典类
在 Python 中,你可以通过自定义类来创建具有特定功能的字典。以下是一个简单的示例,展示了如何创建一个自定义字典类:
class CustomDict(dict):
def __init__(self):
self.data = {} # 用于存储字典数据的属性
def __getitem__(self, key):
return self.data[key] # 重写获取元素的方法
def __setitem__(self, key, value):
self.data[key] = value # 重写设置元素的方法
def __delitem__(self, key):
del self.data[key] # 重写删除元素的方法
def __contains__(self, key):
return key in self.data # 重写检查元素是否存在的方法
def keys(self):
return list(self.data.keys()) # 添加获取所有键的方法
def values(self):
return list(self.data.values()) # 添加获取所有值的方法
def items(self):
return list(self.data.items()) # 添加获取所有键值对的方法
def clear(self):
self.data.clear() # 添加清空字典的方法
@property
def size(self):
return len(self.data) # 添加只读属性获取字典大小
在上述示例中,我们创建了一个名为CustomDict的类,它继承自 Python 内置的dict类。
通过重写一些字典的访问操作方法,如__getitem__、setitem、delitem__和__contains,我们可以在自定义类字典中添加额外的功能。
此外,还添加了一些自定义的方法,如keys、values、items、clear和size,以满足特定的需求。
二、自定义类用法
使用这个自定义字典类的方式与使用普通字典类似:
custom_dict = CustomDict() custom_dict=CustomDict()
custom_dict['name'] = 'John' custom_dict['name']='约翰'
custom_dict['age'] = 25 custom_dict['年龄']=25
print(custom_dict['name']) 打印(custom_dict['名称'])
print(custom_dict.keys()) 打印(custom_dict.keys())
print(custom_dict.size) 打印(custom_dict.size)
三、创建字典的其他方法
Python 中创建字典还有多种其他方法,例如:
-
直接创建空字典:dic = { }
-
直接赋值创建字典:dic = {‘name’: ‘jack’, ‘age’: 18, ‘height’: 180}
-
通过关键字dict和关键字参数创建:dic = dict(name=‘jack’, age=18,height=180)
-
通过关键字dict和二元组列表创建:lis = ((‘name’, ‘jack’), (‘age’,18), (‘height’,180)); dic = dict(lis)
-
通过关键字dict和zip创建:dic = dict(zip(‘abc’, (1, 2, 3)))
-
通过字典推导式创建:dic = {i: i**2 for i inrange(1, 5)}
-
通过dict.fromkeys()创建:dic = dict.fromkeys(range(4), ‘x’),通常用来初始化字典并设置value的默认值。