12得票1回答
为什么包含可变对象的NamedTuple是可哈希的,而包含可变对象的Tuple则不可哈希?

如果一个 tuple 包含可变对象如 list,那么它就不是可散列(hashable)的,因为元组中的 list 项仍然可以被更新。 例如:# hashable tuple_test = (1,2,3) print(tuple_test.__hash__()) 虽然这个内容不可哈希:# No...

12得票1回答
为什么我无法将 typing.NamedTuple 进行序列化,而可以对 collections.namedtuple 进行序列化呢?

为什么我不能pickle一个typing.NamedTuple,而我可以pickle一个collections.namedtuple? 我该如何pickle一个NamedTuple? 以下代码展示了我迄今为止尝试的内容: from collections import namedtuple...

12得票2回答
Python命名规范 - 命名元组(namedtuples)

我是Python的新手,一直在阅读在线文档并(尝试)遵循PEP 0008以获得良好的Python代码风格。 在学习关于re库的内容时,我在官方Python 文档中发现了一个代码段,感到很好奇: import collections Token = collections.namedtupl...

12得票3回答
使用Pythonic的方式代替具有相同键的(嵌套)字典?

我发现我经常避免使用词典,因为它们的代码中通常有近一半是重复的。尤其是在嵌套字典中,所有子字典都包含相同的键,但不同的值。 我手动创建一个大的父字典,其中每个键都包含一个嵌套字典,以供外部模块使用。所有嵌套字典都使用相同的键来定义配置参数。这种用法是明确的并且有效,但为每个手动创建的嵌套字典...

11得票4回答
NumPy中类似于命名元组的数据结构是什么?

是否可能创建一个类似于collections.namedtuple的NumPy对象,以便可以像这样访问元素: data[1] = 42 data['start date'] = '2011-09-20' # Slight generalization of what is possible...

11得票1回答
如何将特殊方法'Mixin'应用于typing.NamedTuple

我喜欢 Python 3.6 中的 typing.NamedTuple。但通常情况下,namedtuple 包含一个不可哈希的属性,并且我想将其用作 dict 键或 set 成员。如果 namedtuple 类使用对象标识(id() 作为 __eq__ 和 __hash__) 是有意义的,那么...

11得票4回答
在Python中,命名元组是否应遵循常量命名约定?

我写了一个小的Python模块,在其中使用了一些命名元组来传递信息,因为我觉得它们非常表达。我考虑了这些类型,并按照PEP8规范为类名命名(骆驼拼写法)。然而,Pylint看到了以下代码: PersonData = collections.namedtuple('PersonData', '...

10得票4回答
使用namedtuple进行嵌套

我在Python中遇到了获取期望数据的问题。 基本上,我有一个读入二进制数据并提供绘图和分析函数的程序。 我的数据有主标题和子标题,它们可能是任意数量的不同数据类型。 我想能够像以下这样访问我的数据:>>> a = myDatafile.readit() >&gt...

10得票1回答
Python中的namedtuple T._make(iterable)和T(*iterable)有何区别?

小问题:我不明白为什么Python的namedtuple类型有一个_make()函数。据我所知,如果T是使用namedtuple创建的类型,则 T._make(iterable) and T(* iterable) _make()函数和__init__()方法是一样的东西。那...

10得票1回答
Python:复制具有相同属性/字段的命名元组

我正在编写一个函数,该函数接收一个命名元组并必须返回该元组的超集。 例如,如果我收到像这样的命名元组:Person(name='Bob', age=30, gender='male') 我想要返回一个看起来像这样的元组:Person(name='Bob', age=30, gender='m...