【问题标题】:how to produce new dictionary from old which will extract useful information如何从旧词典中提取有用信息
【发布时间】:2020-06-21 15:49:45
【问题描述】:

我有一个整数列表字典。 我想用相同的键构建一个新字典,但是每个列表的每个数字都映射到字母表中的一个字母。 0 是 A,1 是 B,以此类推。

oldDict = {
    'code_1': [2, 0, 19],
    'code_2': [3, 14, 6],
    'code_3': [0, 11, 11],
    'code_4': [13, 0, 15]
}

这就是我想要的

newDict =  {
    'code_1': ['c', 'a', 't'],
    'code_2': ['d', 'o', 'g'],
    'code_3': ['a', 'l', 'l'],
    'code_4': ['n', 'a', 'p']
}

我怎样才能做到这一点?

【问题讨论】:

标签: python python-3.x dictionary


【解决方案1】:

我希望这会有所帮助,但这篇文章是重复的。基本上使用 chr() 并传递一个 ASCII 数字,我们可以得到数字对应的字母。 ASCII 中的“A”是数字 65,“a”是数字 97。也只需要使用嵌套循环来访问第二个列表。

oldDict = {
    'code_1': [2, 0, 19],
    'code_2': [3, 14, 6],
    'code_3': [0, 11, 11],
    'code_4': [13, 0, 15]
}

# ASCII Implementation replace 97 - 'a' for 65 - 'A' for uppercase
count = 1
newDict = {}
for item in oldDict:
    newList = []
    for number in oldDict[item]:
        result = number + 97
        newList.append(chr(result))
    newDict['item_' + str(count)] = newList #dedent this line because you only have to updata when the newList finished computing
    count += 1

print(newDict)

【讨论】:

    【解决方案2】:

    或者,如果您想使用任何键,请尝试:

    oldDict = {
        'code_1': [2, 0, 19],
        'code_2': [3, 14, 6],
        'code_3': [0, 11, 11],
        'code_4': [13, 0, 15]
    }
    
    newDict = {}
    
    for key, val in zip(oldDict, oldDict.values()):
        newDict[key] = []
        for num in val:
            newDict[key].append(chr(num+97))
    
    print(newDict)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2021-06-21
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 2011-09-25
      相关资源
      最近更新 更多