当前位置: 首页 > 知识库问答 >
问题:

python - Python 如何自定义字典数据类型?

冯育
2023-11-21

想给方法自定义数据类型,通过资料查到可以用 dataclass 这样就很简洁,但貌似传入必须是实例化的方式,我更希望是字典的形式,请问有什么简洁的好的方法?

from dataclasses import dataclass@dataclassclass ABC:    a: intdef test(params: list[ABC]):    print(params)test([ABC(1), ABC(2)])

共有1个答案

邓崇凛
2023-11-21
from dataclasses import dataclass@dataclassclass ABC:    a: intdef test(params: list[ABC]):    print(params)# 用字典初始化test([ABC(**{'a': 1}), ABC(**{'a': 2})])
from dataclasses import dataclass@dataclassclass ABC:    a: int    @classmethod    def from_dict(cls, data):        return cls(**data)def test(params: list[ABC]):    print(params)test([ABC.from_dict({'a': 1}), ABC.from_dict({'a': 2})])
from typing import TypedDict, Listclass ABC(TypedDict):    a: intdef test(params: List[ABC]):    print(params)# 用字典test([{'a': 1}, {'a': 2}])
 类似资料:
  • 问题内容: 所以我有一个字典,打印时看起来像这样: 我想以我定义的自定义方式对它们进行排序。假设我希望按键排序的方式是。 有人知道如何以预定义/自定义的方式整理字典吗?我正在做的是从数据库中获取此词典,它可以带有20多个键,所有键都有特定的顺序。总是设置顺序,但有时某些键/值不会出现在字典中。所以这也可能发生: (按键排序)为。 因此,在此示例中不存在10,但是我需要的排序仍然相同,仅缺少10。

  • 3.7中的标准库可以递归地将数据类转换为判决(文档中的示例): 我正在寻找一种方法,当有嵌套时,可以将判决转换回数据类。像这样的东西只有在数据类的字段是简单类型而不是数据类时才有效。我熟悉jsonickle,但是它带有一个突出的安全警告。 编辑: 答案建议使用以下库: 英安岩 mashumaro(我用过一段时间,效果很好,但很快就遇到了棘手的角落案例) pydantic(非常好用,优秀的文档和较少

  • 问题内容: 目前,我仅显示键,每个键都在新行中显示: 如何在新行中将它们显示为 key :: value ? 问题答案: 通过迭代器,将生成一个键,值元组: 更新为现代符号:

  • 前面的几个小节我们分别学习了字符串、列表、和元组等等几种 Python 中的基础数据类型,这节课我们来学习 Python 中另一个比较重要的数据类型–字典,字典和其他我们已经学习过的数据类型都有些不一样,具体不一样在哪里我们一起来看一下: 1. 字典简介 字典由键和对应值成对组成,字典中所有的键值对放在 {} 中间,每一对键值之间用逗号分开,例如: {‘a’:‘A’, ‘b’: ‘B’, ‘c’:

  • 问题内容: 很简单,我正在学习Python,但是找不到可以告诉我如何编写以下内容的参考: 后来: 这是一个具有以下属性的班级团队:名称/徽标/成员 编辑 经过几次尝试,我得到了: 后来 这是Python方式吗?感觉很奇怪(当然来自强类型语言)。 问题答案: 在Python中,通常不编写getter和setter,除非您确实为它们提供了一个简单的实现(此时使用属性描述符)。

  • 问题内容: 我想知道python字典如何在后台运行,尤其是动态方面?创建字典时,其初始大小是多少?如果我们用很多元素更新它,我想我们需要扩大哈希表。我想我们需要重新计算散列函数以适应新的更大的散列表的大小,同时又与先前的散列表保持某种逻辑? 如您所见,我不完全了解此结构的内部。 问题答案: (部分)以下答案来自“ 升级Python技能”:检查字典。有关Python哈希表的更多信息,请参见The H