如何将元组转换成字典(元组作为键和元组值)?

时间:2019-08-28 08:43:57

标签: python dictionary tuples

我有一个元组。我想将该结构转换为一个字典,该字典具有作为键的元组和作为值的元组-看起来像(first, second):(first, second,...) 但是值的数量不是恒定的。它可以是一个值,五个值或一个空的元组。

我的部分数据集如下:

(
(CityA, CodeA, Street1A),(CityA, CodeA, Street2A),(CityA, CodeA, Street3A), 
(CityA, CodeB, Street1B),(CityA, CodeB, Street2B),
(CityB, CodeC, '')
)

我的意思是将相同的城市和代码(重要的是,导致两个具有相同名称的不同城市具有不同的代码和街道)和元组内的街道分组-请参见以下示例:

{
(CityA, CodeA):(Street1A, Street2A, Street3A),
(CityA, CodeB):(Street1B, Street2B),
(CityB, CodeC):('')
}

1 个答案:

答案 0 :(得分:0)

我相信您应该为此编写适当的for循环。只要“键”是元组中的前两个元素,类似的东西就应该起作用

result = dict()
for line in data:
  key, value = line[:2], line[2:]
  if key not in result:
    result[key] = list()
  reuslt[key].append(value)

如果您需要将值作为元组而不是列表,只需添加:

result = {k: tuple(v) for k, v in result.items()}