将单个字典值从字符串转换为整数?

时间:2012-03-09 11:56:22

标签: python string dictionary int

让我们考虑一下

set = {'a': '98', 'b': '10', 'c': 'nike', 'd': 'paarudas', 'e': '3'}

我想将其更改为,

set = {'a': **98**, 'b': **10**, 'c': 'nike', 'd': 'paarudas', 'e': **3**}.

还有一个疑问,如果我得到

set_1 = {'a': '98', 'b': '10', 'c': 'nike', 'd': 'paarudas', 'e': ''}

然后我必须将其改为

set_1 = {'a': **98**, 'b': **10**, 'c': 'nike', 'd': 'paarudas', 'e': ''}.

2 个答案:

答案 0 :(得分:6)

$ python3
>>> s = {'a': '98', 'b': '10', 'c': 'nike', 'd': 'paarudas', 'e': '3'}
>>> {k:int(v) if v.isdigit() else v for k,v in s.items()}
{'a': 98, 'c': 'nike', 'b': 10, 'e': 3, 'd': 'paarudas'}

答案 1 :(得分:4)

def int_if_possible(value):
    try: return int(value)
    except: return value

result = dict((k, int_if_possible(v)) for (k, v) in original.items())

请不要调用变量set;这是另一种数据类型(如dict)。