问题标签 [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 投票
4 回答
2423 浏览

python - namedtuples 是否应该遵循 python 中的常量名称约定?

我编写了一个小型 python 模块,在其中使用了几个命名元组来传递信息,因为我发现它们非常具有表现力。我考虑了这些类型,并按照 PEP8 的类名约定(CamelCased)命名它们。但是 pylint 看到了这条线:

在模块的全局范围内,然后:无效的常量名称“PersonData”。

我在滥用命名元组吗?什么是pythonic推荐?我只能想到抑制警告,将结构重命名为 PERSON_DATA,或者使其成为一个完整的类。请注意,在我的情况下,虽然它有方法是没有意义的。

如果答案是抑制警告。这不是 pylint 与命名元组的反复出现的问题吗?

(使用 pylint-0.26.0、python-2.7.4)

0 投票
1 回答
2148 浏览

python - Python将数据库记录放在Namedtuple中

我正在尝试在 python (2.7) 中编写一些代码:

  1. 在 sqlite 中打开数据库
  2. 对数据库进行查询,得到一些结果。数据库有多个表,我需要来自不同表的记录:数据库是这样的:
    • data.db ---> [table1[col1, col2, col3], table2[col1, col2, col3]]
  3. 遍历结果
  4. 对结果做一些事情(例如在记录中有一个需要解码的日期)
  5. 将所有记录存储在一个命名元组中以供进一步访问

从现在开始,我已经完成了第 1、2、3 和 4 部分,但我不知道如何将结果存储在命名元组中。假设在每次迭代中,我将我需要的数据存储在 namedtuple 中的临时变量中:

for result in results:
var1 = table1.col1
var2 = table2.col1
var3 = table3.col1

(现在我想对变量做点什么,但这不是问题,并将 3 个变量存储在一个命名元组中)

0 投票
1 回答
2230 浏览

python - 了解 Python 中 namedtuple 类型名和 pickle 的问题

今天早些时候,我在尝试腌制一个命名元组实例时遇到了麻烦。作为健全性检查,我尝试运行一些发布在另一个答案中的代码。在这里,简化了一点:

然后我更改了其中的两行以使用我的命名元组:

然而,这给了我错误

即 Pickle 模块正在寻找my_typename. 我将线路更改P = namedtuple("my_typename", "A B C")P = namedtuple("P", "A B C")并且它有效。

我查看了来源,namedtuple.py最后我们有一些看起来相关的东西,但我不完全理解发生了什么:

所以我的问题是到底发生了什么?为什么typename参数需要与工厂名称匹配才能工作?

0 投票
1 回答
4270 浏览

python - 检查列表中是否存在值为 x 的 namedtuple

我想看看一个namedtuple是否存在于一个列表中,类似于:

有没有pythonic(或没有)方法来做到这一点?就像是:

0 投票
2 回答
1130 浏览

python - 在 Python 中将数据导入命名元组

我正在尝试将数据导入命名元组。数据非常大,我需要有效地导入它。我在尝试

在此之后:

  • 我应该怎么做才能将 demand.txt 中的整个表批量导入到 namedtuple 中?我看到一些带有 for 循环的解决方案,但我想那是低效的。

  • 我希望能够获得一个字段下的所有值,比如当我键入 data.div 时?正确的格式应该是命名元组的元组吗?

0 投票
1 回答
1410 浏览

python - 在 Python 中动态添加类 __dict__ 属性

我正在尝试将__dict__成员添加到由 namedtuple 生成的类中。(__dict__存在于 python 2.7.3 中,但已在 2.7.5 中删除。请参阅http://bugs.python.org/issue15535。它存在并记录在 python 3.3 中。)我的代码使用 vars(nametuple_object),即基于__dict__. 我想在需要时修补课程。

这是我尝试过的:

这不起作用,因为 C 继承了 a __dict__,因此 hasattr 始终为 true 并且(强制时)属性分配返回:

也许,有没有办法引用未继承的 C 成员?


解决方案

这是我的 namedtuple 包装器,它使用 rdb 的建议,即仅从 namedtuple 类继承而不是尝试修改它:

0 投票
1 回答
1152 浏览

python - 将元素列表传递给命名元组

我想创建一个namedtuple有 27的field_names。虽然它有太多,但field_names我创建了一个名为 sub 的列表,其中包含field_names. 这result是我对namedtuple.

结果值:

现在,我不知道如何将 sub_value 的元素传递给result(rollno, name, ...).

0 投票
1 回答
54635 浏览

python - Python 中的 *tuple 和 **dict 是什么意思?

如 PythonCookbook 中所述,*可以在元组之前添加。这里是什么*意思?

第 1.18 章。将名称映射到序列元素:

在同一部分中,**dict介绍:

这里的功能是什么**

0 投票
3 回答
4940 浏览

python - 将数据存储到具有空字段的命名元组中以添加其他内容

我需要为这个行列表中的每一行创建一个命名元组,基本上这些字段将是第一行中的单词“日期,打开,高,低,关闭,音量,调整关闭”,然后我将制作一些计算,并且需要在每个命名元组的末尾再添加 2 个字段。关于我如何做到这一点的任何帮助?

0 投票
4 回答
127 浏览

python - 以特定格式存储打印数据的最佳选择

所以我有一些 csv 数据,我需要的只是两个字段,然后我将使用收盘价进行一些计算,然后再有两个字段并以某种格式打印这四个字段。

我正在考虑使用这两个字段创建命名元组,然后在计算后添加其他两个字段的值。namedtuples 最好将其格式化为这种格式,另一种选择是否像字典或列表更好?

如果使用 namedtuples 是正确的方法,我如何只使用数据中的两个字段和两个可以添加值的字段来创建它们,我能够创建 namedtuples,但通过在数据上使用 splitlines() 和所有字段然后创建命名元组。