问题标签 [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 回答
306 浏览

python - 哪个数据结构用作字典数组?

我需要构建一个像这样的数据结构:

问题是我正在以一种“折衷”的方式构建它,每次多获取一个项目以放入随机 k 作为随机密钥,即我需要随机访问,并且我需要内部 dict 是可变的。

所以我的问题分为两个:

  1. 外部字典的推荐类型。

  2. 内部字典的推荐类型。

对我来说“最好的”解决方案是一组可变的命名元组,只是这个不存在。

我可以使用一个命名元组列表,然后用新数据重新创建每个,但这听起来非常浪费,因为列表不是随机访问效率高的,而且所有重写相同的数据。

是否有一些我不知道的神奇新结构?

编辑:使用示例:

编辑2:

事实证明,列表实际上确实支持随机访问

0 投票
4 回答
30439 浏览

python - 如何将字段添加到命名元组?

我正在使用一个命名元组列表。我想在创建每个命名元组后为其添加一个字段。看来我可以通过仅将其作为属性(如namedtuple.attribute = 'foo')引用来做到这一点,但随后它不会添加到字段列表中。如果我不对字段列表做任何事情,有什么理由不这样做吗?有没有更好的方法来添加字段?

0 投票
1 回答
4364 浏览

python - Python 无法识别命名元组的类型

我怀疑以前有人问过这个问题,但我一直找不到,所以这里是:

在 Python(使用 2.7)上,我创建namedtuple如下:

然后我想检查类型,t我的结果很奇怪:

为什么会这样?我希望a被识别为元组类型,但事实并非如此。有什么提示吗?

0 投票
2 回答
682 浏览

python - Python 命名元组索引实例

所以这是我目前正在从事的实验室编码项目的代码:

作为初学者,我的问题是:我应该使用什么方法来允许我的程序索引列表的特定部分?

例如,如何从更大的列表中索引所有餐厅的列表?此列表仅包括列表中的餐厅,而不是所有其他信息,例如电话号码等...

我已经使用了切片方法和列表函数来尝试自己解决这个问题,但它并没有被证明是有效的。>:(

0 投票
1 回答
716 浏览

python - python ctypes vs namedtuple

所以我有两个简单的 ctypes 结构

例如,是否可以使用 namedtuple 做同样的事情?在 namedtuple 中如何处理列表?

编辑:

struc.pack 用法

最后,我想以可读格式打印数据(键:值对可见)。但是现在我无法弄清楚我应该如何使用两个不同的命名元组来处理解包操作......?

这个 unpack.struct 操作会处理值类型问题,对吧?

0 投票
5 回答
11501 浏览

python - 在python sqlite中将结果行映射到namedtuple

我正在使用 sqlite3 的 python api,我有一个用于存储语言的小表,其中包含 id、name 和 creation_date 字段。我正在尝试namedtuple按照文档的建议将原始查询结果映射到 a 中,这样我就可以以更易读的方式管理行,所以这是我的namedtuple.

文档为映射建议的代码如下:

当我想返回一组语言时这很好,但在这种情况下我只想检索一种语言:

所以我的第一次尝试是这样的:

此代码不起作用,因为fetchone()返回一个元组而不是一个包含一个元组的列表,因此该map函数尝试namedtuples为每个元组字段创建三个一个。

我解决这个问题的第一种方法是显式创建一个列表并将元组结果附加到它上面,例如:

我的第二种方法是使用fetchall()虽然我只想要一个记录。我可以在数据库中设置带有unique约束的名称字段,以便只保证一个结果。

可以使用另一种方法,而fetchall()[0]不会unique限制只保证一个结果。

我的问题是处理这个问题的最好和最常用的方法,我应该总是使用fetchall来维护一个通用接口并让数据库管理唯一性逻辑吗?还是我应该像方法1一样明确创建一个列表?有没有更简单的方法来完成这项任务?

0 投票
1 回答
364 浏览

python - 有没有更好的方法来使用 urlopen 执行 csv/namedtuple?

使用namedtuple文档示例作为我在 Python 3.3 中的模板,我有以下代码来下载 csv 并将其转换为一系列 namedtuple 子类实例:

这会引发以下异常:

我知道问题在于 urlopen 返回的是字节而不是字符串,并且我需要在某个时候解码输出。这是我现在使用 StringIO 的方法:

这听起来很有趣,因为我基本上是在迭代字节缓冲区、解码、重新缓冲,然后迭代新的字符串缓冲区。有没有更 Pythonic 的方法可以在没有两次迭代的情况下做到这一点?

0 投票
5 回答
24639 浏览

python - 如何正确腌制命名元组实例

我正在学习如何使用泡菜。我创建了一个 namedtuple 对象,将其附加到一个列表中,并尝试腌制该列表。但是,我收到以下错误:

我发现如果我运行代码而不将其包装在函数中,它会完美运行。包装在函数中时是否需要额外的步骤来腌制对象?

这是我的代码:

0 投票
2 回答
6345 浏览

python - 使用 Python >= 2.7 将嵌套的命名元组序列化为 JSON

我有一个类似于CalvinKrishy 的问题 Samplebias 的解决方案无法处理我拥有的数据的问题。

我正在使用 Python 2.7。

这是数据:

命名元组

字典

如您所见, a1 和 a2 都是相同的,除了一个是namedtuple另一个是dict

但 json.dumps 不同:

我想要 a1 的 json 格式,就像它对 a2 所做的那样。

0 投票
1 回答
3649 浏览

python - 跨多个链式函数的 namedTuples 定义

我目前正在构建一个模块化的函数管道来处理 Python (2.7) 中的一些数据。

我坚持松散的功能风格,没有任何对象(对于我正在应用的代码类型和例程,它非常有意义,并且到目前为止的代码整洁易读,设计对象只会让一切变得更加模糊)。

为了保持一致,我定义了一个自定义的命名元组,带有字段名称等。这个想法是初始函数读取一些数据文件并返回这些特殊定义的元组之一。以下函数将读取它,使用数据字段并返回一个带有更改的新元组(因为它们是不可变的)。但是,我似乎无法避免必须执行导入集合并重新定义自定义类型 - 请参阅代码示例。

它并没有真正引起问题,但我很好奇,好像没有一种更“全局”的方式来做到这一点而没有那么多重复。如果有的话,我做更多“无副作用”的方式不是功能性的吗?(抱歉,这里实际上有两个问题:第一个是实用的封闭式 Python 问题,第二个是更开放/哲学的问题。)

提前致谢!