在python中将键从字典转换为int

时间:2016-04-04 07:57:12

标签: python dictionary

我有以下字典:

 d = {
  u'71': u' 12.3/0.2mm',
  u'70': u' 12.1/0.2mm', 
  u'79': u' 13.9/0.2mm', 
  u'78': u' 13.7/0.2mm'
 }

键目前是字符串。如何将它们转换为整数?

我尝试过使用d = {int(k) for k in d},但它弄乱了字典,只返回了键。

4 个答案:

答案 0 :(得分:3)

使用items()迭代键和值。

d = dict(int(k),v for k,v in d.items())

或者是Bhargav Rao建议的较短语法:

d = {int(k),v for k,v in d.items()}

最后,正如Manjit Kumar所建议的那样,如果你的词典不包含整数键:

d = {'not an int': 'test', '123': '456'}
new_d = {}
for k,v in d.items():
    try:
        new_d[int(k)] = v
    except ValueError:
        new_d[k] = v
# new_d = {123: '456', 'not an int': 'test'}

答案 1 :(得分:2)

尝试创建一个类似的新词典:

.td-hover td {
  position: relative;
  width: 1em;
  border: 1px solid #ddd;
}
.on-hover {
  display: none;
  position: absolute;
  top: -1.5em;
  left: -1em;
  background: #eee;
  border: 1px solid black;
}
.td-hover td:hover .on-hover {
  display: inline-block;
}

答案 2 :(得分:1)

您还可以使用pop()方法在不创建新词典的情况下处理词典:

for k in d:
    d[int(k)] = d.pop(k)

示例:

>>> d = {u'71': u' 12.3/0.2mm',
         u'70': u' 12.1/0.2mm', 
         u'79': u' 13.9/0.2mm', 
         u'78': u' 13.7/0.2mm'}

>>> for k in d:
        d[int(k)] = d.pop(k)
>>> d
{70: u' 12.1/0.2mm', 71: u' 12.3/0.2mm', 78: u' 13.7/0.2mm', 79: u' 13.9/0.2mm'}

答案 3 :(得分:0)

试试这个:

for key in one_dictionary:
   #Do what you want with int(key)