我在 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}
