Skip to main content
 首页 » 编程设计

元组的python集合到字典

2024年09月07日39lyj

我在 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。由于这些值并没有真正得到更新,因此无需往返数据库进行检索。

请您参考如下方法:

你可以在没有字符串连接的情况下这样做:

代码:

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

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

测试代码:

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}