问题标签 [namedtuple]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4174 浏览

python - 有什么方法可以绕过 namedtuple 255 参数限制?

我正在使用一个命名元组来保存字符串集及其对应的值。我没有使用字典,因为我希望字符串可以作为属性访问。

这是我的代码:

理想情况下,一旦my_strings初始化,我应该能够做到这一点:

value1打印回来。

但是,我收到以下错误:

似乎python函数(包括namedtuple的init())在调用时不接受超过255个参数。有什么方法可以绕过这个问题并命名超过 255 个项目的元组?为什么仍然有 255 个参数限制?

0 投票
1 回答
734 浏览

python - 取消命名元组时出错

全局变量 Agree 是一个在所有函数之外定义的命名元组:

命名元组从此函数返回:

在这里调用并腌制:

解酸给出错误:

文件的反汇编:

pickle 和 cPickle 都给出了类似的错误。

0 投票
1 回答
1924 浏览

python - 命名元组错误

我正在尝试使用 namedtuple 将 Python 对象序列化为 JSON。但我得到这个错误。谷歌没有帮助。

0 投票
1 回答
1471 浏览

python - 如何“索引”命名元组

我有一个命名元组,其中包含几个命名元组。

每个内部元组本质上都有一个唯一的“id”,以及其他有用的信息。我知道我想要访问的元组的 ID,我想知道是否有一种简单的方法可以“索引”命名元组来提取我想要的确切元素,而无需执行以下操作:

0 投票
0 回答
979 浏览

python - 基于namedtuple优化可修改命名列表

我的目标是优化基于 CSV 来源列表的修饰符堆栈的框架。每个修饰符都使用一个标题列表在命名的基础上工作。

CSV 示例(包括标题):

我已经编写了一些基于 namedtuple 的代码,以便能够使用 csv 模块生成的列表,而无需每次都重新组织数据。生成的代码如下:

我必须说我对使用这个类的表现非常失望。为 70000 行 csv 文件的每一行调用一个简单的修饰函数(将“忽略”更改为 True 100 次。是的,我知道它是无用的)需要 9 秒(使用 pypy.5.5 使用原始 python),而等效代码使用名为 foo 的列表需要 1.1 秒(与 pypy 和原始 python 相同)。

我能做些什么来获得两种方法之间的可比性能吗?对我来说,record.ignore = True可以直接内联(左右),因此翻译成record[150] = True. 有没有我看不到的阻碍点来实现这一点?

请注意,我正在修改的记录实际上(目前)不是为 CSV 文件中的每一行创建的,这意味着在列表中添加更多项目只发生一次,在迭代之前。

更新:示例代码

--> 使用命名列表

--> 不使用命名列表

更新 #2:namedlist.py 的代码(主要基于 namedtuple.py

0 投票
0 回答
659 浏览

python - 格式错误的字符串错误 - Python - 转换字符串 repr。字典的

当我这样做时ast.literal_eval(),我得到ValueError: malformed string了下面的行z = ast.literal_eval(a)。为什么这不起作用?

(请注意 - 下面一行中的“某物”有 4 个或更多命名元组)

如果我做一个简单的print a,我得到

没有ast.literal_eval(a),当我尝试使用“a”作为字典时,它会引发AttributeError: 'str' object has no attribute 'items'. 这是扩展代码——

编辑:当我尝试 json.loads(thing) 时,我得到TypeError: expected string or buffer. 所以我认为thing不是字符串。然后我不知道为什么它在抱怨它是str object我使用它的时候。

0 投票
1 回答
1093 浏览

python - 属性如何与 Python 中的 Itemgetter 一起使用?

我正在学习python。当谈到官方库中的集合模块时,我发现了 NamedTuple 的代码片段,例如:

它是 NamedTuple 生成的代码的一部分。生成的代码如下:

这是我的问题:

Itemgetter(0) 是一个需要对象作为参数的函数。但是属性不会将任何参数传递给 itemgetter。那么这是如何工作的呢?

谢谢!

这是使用该属性的全部代码:

0 投票
4 回答
48032 浏览

python - 无法为 namedtuple 的子类设置属性

看起来这个这个有点相关的线程,但还没有弄清楚:)

我正在尝试创建一个子类namedtuple并提供不同的初始化程序,以便我可以以不同的方式构造对象。例如:

但是,这不起作用:

经过一番摸索(例如,请参阅线程),我尝试使用构造函数而不是初始化程序:

这似乎构造了一个对象,但后来我无法读取它的属性:

我在哪里错了?如何创建具有多个构造函数或初始化程序的子类?

0 投票
1 回答
165 浏览

python - 从命名元组列表中选择标题的问题

我想选择书名并按字母顺序制作一个新列表

对于 BSI 中的 i:打印(排序(i.title))

0 投票
1 回答
4075 浏览

python - 如何将命名元组应用于函数?

在 Python 中,如果你有字典

您可以将其应用于接受foobar关键字参数的函数

但是,如果相反,我想func使用下面定义的 namedtuple 进行调用:

这个的语法是什么?