Рассмотрим словарь Python со смешанными типами ключей:
chrDict = {'1':234,'12':45,'23':121,'2':117,'chX':12,'chY':32}
Я хочу преобразовать эти ключи в строковом типе в тип int, которые являются числовыми, а остальные оставить.Результат, который я ожидаю:
chrDict = {1:234,12:45,23:121,2:117,'chX':12,'chY':32}
Я попробовал следующее:
chrDict.update((int(i),j) for i,j in chrDict.items())
Это дает мне ошибку:
TypeError: cannot convert dictionary update sequence element #0 to a
sequence
Затем я попытался:
for i,j in chrDict.items():
try:
chrDict.update(int(x),y)
except:
pass
Но вывод, который я получаю, не верен, он не меняется:
{'1': 234, '12': 45, '23': 121, '2':117, 'chX': 12, 'chY': 32}
На самом деле я хочу сделать это, чтобы потом было легче сортировать.В настоящее время, если я пытаюсь:
sorted(chrDict.items())
Это дает мне следующий вывод:
[('1', 234), ('12', 45), ('2', 117), ('23', 121), ('chX', 12), ('chY', 32)]
Значение ключа 2
должно следовать после значения ключа 1
, которого не происходит.
Поэтому, пожалуйста, дайте мне несколько советов по решению этой проблемы.Есть ли лучший подход к этой проблеме?