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