namedtuple 相关问题

namedtuple是Python集合模块提供的数据结构。它允许创建具有命名元素的元组(例如,具有值(名称,学校,年龄)的学生元组,而不是仅具有两个字符串和整数的元组)。

如何在Python中将数据分组并绘制成散点图

基本上我有一个包含字符串和整数的csv文件(下面的屏幕截图),我想将“country_id”部分分组为各大洲,例如,“EUROPE”将包含...

回答 1 投票 0

获取namedtuple对象列表中1个字段的总数

在Python中,从一组命名元组中获取一个字段的总数的最简单方法是什么? 在这个例子中,我正在寻找 TestResults.failed 的总数,它应该是 4。它是...

回答 1 投票 0

将 Dataframe 转换为 numpy 数组的命名元组

我需要将 pandas 数据帧转换为 numpy 数组的元组。我的代码就像, 将 pandas 导入为 pd 数据 = {'类':[10., 11., 9., 8.], '年龄':[27., 24., 22., 32.], “马克”:[76., 56...

回答 1 投票 0

Python:复制具有相同属性/字段的命名元组

我正在编写一个函数,它接受一个命名元组,并且必须返回该元组的超集。 例如,如果我要收到这样的命名元组: 人(姓名='鲍勃',年龄=30,性别='男') 我...

回答 2 投票 0

使namedtuple接受kwargs

如果我有这样的课程: 类人(对象): def __init__(自我, 名字, **kwargs): self.name = 名字 p = Person(name='joe',age=25) # 年龄被忽略 额外的参数将被忽略。但如果我...

回答 6 投票 0

_pickle.PicklingError:无法腌制<class '__main___.{CONST} '>:属性查找失败dir_namesmain_on __main__失败

首先 dir_names 在酸洗时效果很好 dir_names = collections.namedtuple('dir_names', ['标记', '类别']) pickle.dump(dir_names, open('tmp.bin', 'wb')) 我想让 dir_name 成为 const DIR_NAME...

回答 1 投票 0

如何正确pickle一个namedtuple实例

我正在学习如何使用pickle。我创建了一个命名元组对象,将其附加到一个列表中,并尝试腌制该列表。但是,我收到以下错误: pickle.PicklingError:无法腌制 我正在学习如何使用pickle。我创建了一个命名元组对象,将其附加到一个列表中,并尝试腌制该列表。但是,我收到以下错误: pickle.PicklingError: Can't pickle <class '__main__.P'>: it's not found as __main__.P 我发现如果我运行代码而不将其包装在函数中,它会完美运行。包装在函数内时是否需要额外的步骤来腌制对象? 这是我的代码: from collections import namedtuple import pickle def pickle_test(): P = namedtuple("P", "one two three four") my_list = [] abe = P("abraham", "lincoln", "vampire", "hunter") my_list.append(abe) with open('abe.pickle', 'wb') as f: pickle.dump(abe, f) pickle_test() 创建函数的命名元组outside: from collections import namedtuple import pickle P = namedtuple("P", "one two three four") def pickle_test(): my_list = [] abe = P("abraham", "lincoln", "vampire", "hunter") my_list.append(abe) with open('abe.pickle', 'wb') as f: pickle.dump(abe, f) pickle_test() 现在pickle可以找到它;它现在是一个全局模块。当 unpickle 时,pickle 模块所要做的就是再次定位 __main__.P。在您的版本中, P 是 pickle_test() 函数的 local,并且不可内省或不可导入。 请注意,pickle仅存储模块和类名称,取自类的__name__属性。确保 namedtuple() 调用的第一个参数与您要分配给的全局变量匹配; P.__name__一定是"P"! 重要的是要记住,namedtuple()是一个类工厂;你给它参数,它返回一个类对象供你创建实例。 pickle仅存储实例中包含的data,加上对原始类的字符串引用以再次重建实例。 我在另一个线程中找到了这个答案。 为了让 pickling 正常工作,分配给namedtuple的变量必须与namedtuple本身具有相同的名称 group_t = namedtuple('group_t', 'field1, field2') # this will work mismatched_group_t = namedtuple('group_t', 'field1, field2') # this will throw the error 将我的问题添加为主要答案的评论后,我找到了一种方法来解决动态创建的 namedtuple 可腌制的问题。在我的情况下这是必需的,因为我仅在运行时(在数据库查询之后)计算出其字段。 我所做的就是 monkey patch namedtuple,有效地将其移动到 __main__ 模块: def _CreateNamedOnMain(*args): import __main__ namedtupleClass = collections.namedtuple(*args) setattr(__main__, namedtupleClass.__name__, namedtupleClass) namedtupleClass.__module__ = "__main__" return namedtupleClass 请注意,如果您不小心,namedtuple名称(由args提供)可能会覆盖__main__中的另一个成员。 或者,您可以使用 cloudpickle 或 dill 进行序列化: from collections import namedtuple import cloudpickle import dill def dill_test(dynamic_names): P = namedtuple('P', dynamic_names) my_list = [] abe = P("abraham", "lincoln", "vampire", "hunter") my_list.append(abe) with open('deleteme.cloudpickle', 'wb') as f: cloudpickle.dump(abe, f) with open('deleteme.dill', 'wb') as f: dill.dump(abe, f) dill_test("one two three four") 这里的问题是子进程无法导入对象的类 - 在本例中为类 P -,在多模型项目的情况下,类 P 应该可以在使用子进程的任何地方导入 一个快速的解决方法是通过影响 globals() 来使其可导入 globals()["P"] = P

回答 5 投票 0

在实际调用之外定义函数的参数

我有一个函数必须调用其他函数,并且参数的数量和类型不固定,我想将其设置在字典中。 像这样的东西: def main_function(子函数列表...

回答 1 投票 0

Python 如何区分命名元组的类型名称?

我的模型类必须提供大量查询,我想将查询结果返回为namedtuple。我的解决方案有效,但我不知道为什么:) - 所以我想得到一些澄清......

回答 1 投票 0

PyCharm:namedtuple:意外参数,未填充参数

在 PyCharm 中,您可以声明一个命名元组。 从集合导入命名元组 InstTyp = 命名元组( 类型名称='InstTyp', 字段名称=''' 实例类型 记忆 CPU 数...

回答 1 投票 0

将 Python 命名元组序列化为 json

将namedtuple序列化为json并保留字段名称的推荐方法是什么? 将命名元组序列化为 json 只会导致值被序列化,而字段名称则为...

回答 12 投票 0

为什么namedtuple+namedtuple返回一个常规元组?

从集合导入namedtuple foo_a = nametuple("foo_a", ["a1", "a2", "a3"]) foo_b = nametuple("foo_b", ["b1", "b2", &q...

回答 1 投票 0

如何理解Python中的namedtuple + nametuple?

从集合导入namedtuple foo_a = nametuple("foo_a", ["a1", "a2", "a3"]) foo_b = nametuple("foo_b", ["b1", "b2", &q...

回答 1 投票 0

从 namedtuple 获取值的名称

我有一个集合模块: 导入集合 named_tuple_sex = collections.namedtuple( '航班结果分拣机', ['TotalPriceASC', ...

回答 2 投票 0

如何制作包含变量的数据结构,以便在重新定义变量时更新?

我正在制作一个文字冒险游戏。我正在使用命名元组来定义位置。 Location = namedtuple('Location', ['desc', 'ldesc', 'func', 'dirloc']) 入口=门厅=无 入口=位置('

回答 1 投票 0

如何从 namedtuple 实例列表创建 pandas DataFrame(带索引或多索引)?

简单的例子: 从集合中导入 namedtuple 进口大熊猫 Price = namedtuple('Price', 'ticker date price') a = 价格('GE', '2010-01-01', 30.00) b = 价格('GE', '2010-01-02', 31.00) l = [a, ...

回答 2 投票 0

如何根据输入参数以不同的方式初始化NamedTuple子类?

我正在构建一个 typing.NamedTuple 类(参见这里的 typing.NamedTuple 文档,或者它继承的旧的 collections.namedtuples 文档),它可以接受不同的初始化方式。为什么...

回答 1 投票 0

Namedtuple在windows解释器上没有定义 [关闭] 。

我试图按照文档中的namedtuple()的用法示例进行操作,但我一直得到namedtuple没有定义。

回答 1 投票 0

#Python 为什么我的这段代码一直收到 namedtuple 属性错误?

当我运行下面的代码时,它返回属性错误。属性错误:'Contact'对象没有属性'find_info'我应该如何解决这个问题? phonebook = {}。Contact = namedtuple('Contact', ['...

回答 1 投票 0

我可以用`namedtuple`给一个一维数组的元素命名吗?

res.x是我通过优化目标函数得到的一个数组,我想给每个元素取一个名字,以便以后更方便地使用它们。我最初的想法是使用 namedtuple,但显然 ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.