字典的字典作为值和索引作为键

Dictionary of dictionaries as values and index as keys

我需要根据词典创建一个词典(我们将其命名为 general)。 General 是一个以其他字典作为值和索引(按添加顺序)作为键的字典。

一般示例:

{
1: {'DATE: ': '2021.12.03', 'TIME: ': '01:50:08', 'LAT: ': '41.1905'}, #was added first 
2: {'DATE: ': '2021.12.03', 'TIME: ': '01:50:08', 'LAT: ': '41.1905'}, #was added next (second) 
3: {'DATE: ': '2021.12.03', 'TIME: ': '01:50:08', 'LAT: ': '41.1905'}, #was added third and so on 
}

示例字典:

{'DATE: ': '2021.12.03', 'TIME: ': '01:50:08', 'LAT: ': '41.1905'}

我有一个生成上述字典的 for 循环,我只需要一种方法将它们附加到一个通用的键上,该键将是附加字典的顺序。

不好意思,我尽力了。

如果您想保留插入顺序,您应该使用列表而不是字典。从 Python 3.6 开始,字典保留插入顺序。但是,这个事实对大多数人来说并不是显而易见的,这使得您的代码更难理解,如果您 运行 是早于 3.6 的 Python 版本,您不能依赖此行为.

所以,你有两个选择:

  1. 使用列表并在需要添加时调用 .append()
  2. 如果您出于某种原因必须 使用字典,general[len(general) + 1] = # dictionary to append 之类的东西将生成您要查找的键。但同样,出于上述原因,我会 认真地 建议反对。

此示例假设您要手动输入数据:

general = {}
def add_to_dict():
    n = 0
    while True:
        n+=1
        date = input("Enter date: "),
        time = input("Enter time: "),
        lat = input("Enter latitude: ")
        
        general[f'{n}'] = {'DATE':date,'TIME':time,'LAT':lat}

        another = input("Enter another? Y/N: ").capitalize().strip()
        if another == 'Y':
            another = True
            continue
        else:
            print(general)
            break
add_to_dict()