如何将元组列表转换为dict而不会丢失订单

时间:2017-08-30 18:11:33

标签: python dictionary

我想使用Dict计算字符串中的字母频率,按字母顺序排序。输出应该只是字典。

这是我的尝试。

    s = raw_input()
    arr = {}
    for i in s :
        if i in arr :
            arr[i] += 1
        else :
            arr[i] = 1
    x = sorted(arr.items())
    print dict(x)

输入:

amphisofttechnologies

预期产出:

{'a': 1, 'c': 1, 'e': 2, 'f': 1, 'g': 1, 'h': 2, 'i': 2, 'l': 1, 'm': 1, 'n': 1, 'o': 3, 'p': 1, 's': 2, 't': 2}

我的输出:

{'a': 1, 'c': 1, 'e': 2, 'g': 1, 'f': 1, 'i': 2, 'h': 2, 'm': 1, 'l': 1, 'o': 3, 'n': 1, 'p': 1, 's': 2, 't': 2}

请指出我犯错的地方。

2 个答案:

答案 0 :(得分:0)

Python dict明确地不保证/保持键之间的顺序。所以你所要求的就无法完成。

答案 1 :(得分:0)

您正在寻找OrderedDict