python元组到字典的集合

2024-10-03 06:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python3中有以下数据结构:

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

每个元组的第一个和第二个元素保证在一起是唯一的。我想创建一个字典,它的键是第一个和第二个元素的串联,值是第三个元素:

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

我如何做到这一点?你知道吗

为什么?您看到的集合是SqlAlchemy查询的结果。第三个字段是数据库中的唯一id。我需要快速有效地检索给定其他两个元素的Id。由于这些值实际上没有得到更新,因此不需要为检索而往返数据库。你知道吗


Tags: id数据库元素数据结构字典foosqlalchemypython3
2条回答
h = {str(a) + b: c for a,b,c in foo}

不需要字符串concat就可以这样做,比如:

代码:

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

stringconcat并不是最好的方法,因为它需要创建另一个对象,但实际上会创建任何额外的信息。元组将使用原始对象,但仍然需要为dict设置键

测试代码:

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}

相关问题 更多 >