python 元组集合到字典

标签 python

我在 Python 3 中有以下数据结构:

foo = [(1, 'ADTABC', 7), (3, 'ACHDAT', 8), (1, 'AQNDXB', 15), (2, 'AFTCBA', 14)]

保证每个元组的第一个和第二个元素都是唯一的。我想创建一个字典,其中第一个和第二个元素的串联作为键,第三个元素作为值:

{'1ADTABC': 7, '3ACHDAT': 8, '1AQNDXB': 15, '2AFTCBA': 14}

如何实现这一目标?

为什么?您看到的集合是 SqlAlchemy 查询的结果。第三个字段是数据库中的唯一ID。我需要快速有效地检索给定其他两个元素的 Id。由于这些值并未真正更新,因此无需往返数据库进行检索。

最佳答案

您可以在没有字符串连接的情况下做到这一点,例如:

代码:

foo_dict = {x[0:2]: x[2] for x in foo}

字符串连接并不是解决此问题的最佳方法,因为它需要创建另一个对象,但实际上会创建任何额外的信息。元组将使用原始对象,但仍然实现对字典进行键控的需要。

测试代码:

foo = [(1, 'ADTABC', 7), (3, 'ACHDAT', 8), (1, 'AQNDXB', 15), (2, 'AFTCBA', 14)]
foo_dict = {x[0:2]: x[2] for x in foo}

print(foo)
print(foo_dict)

结果:

[(1, 'ADTABC', 7), (3, 'ACHDAT', 8), (1, 'AQNDXB', 15), (2, 'AFTCBA', 14)]

{(1, 'ADTABC'): 7, (3, 'ACHDAT'): 8, (1, 'AQNDXB'): 15, (2, 'AFTCBA'): 14}

关于python 元组集合到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49143206/

相关文章:

python - 有一个 Spyne 客户端的例子吗?

python - `setData` 方法怎么会失败?

python - Matplotlib 给图添加副标题

python - python 中的 stdtr 在进行 t 检验时为 p 值提供 nan

python - 安装 Google App Engine 后无法运行默认的 python 应用程序

python - 处理 DataFrame Pandas 中的缩写和拼写错误的单词

python - 如何按字母顺序组织以特定字母开头的字符串列表?

C 中用于不返回任何内容的函数的 Python 模块

python - PYCURL获取json文件存在utf-8编码问题

python - 像 python 控制台中的 ipython 一样默认制表符补全