更改python键的类型

时间:2013-10-31 20:18:12

标签: python dictionary

是否有一种简单的方法可以将字符串中的键更改为元组中的元组? E.g:

dict = {'100,2': 0.3, "2,5" = 0.5}

6 个答案:

答案 0 :(得分:4)

这样的东西?

>>> d = {'100,2': 0.3, "2,5": 0.5}
>>> d = {tuple(k.split(',')): v for k, v in d.items()}
>>> d
{('100', '2'): 0.3, ('2', '5'): 0.5}

答案 1 :(得分:0)

您可以使用嵌套字典来获得这种效果:

dict = {'100': {'2': 0.3},
        '2': {'5': 0.5}}
dict['100']['2']
=> 0.3

答案 2 :(得分:0)

当然可以。

>>> key = (100,2)
>>> value = 0.3
>>> d = {}
>>> d [key] = value
>>> d [key]
0.3

答案 3 :(得分:0)

这对我有用

 d = {'2,5': 'a', '2,6': 'b'}
 e= {}
 for x in d.keys(): e[tuple(x.split(','))]=d[x]
 print e
{('2', '6'): 'b', ('2', '5'): 'a'}

答案 4 :(得分:0)

更长的方式,但它会告诉你如何获得你想要的结果。

dict = {'100,2': 0.3, "2,5" : 0.5}

k = dict.keys()

for i in range(len(k)):
     k[i] = tuple(k[i].split(','))

newDict = {}

for i, key in enumerate(dict.keys(), 0):
    newDict[k[i]] = dict[key]

dict = newDict
print dict

输出:

{('100', '2'): 0.3, ('2', '5'): 0.5}

答案 5 :(得分:0)

如果这是你想要的,我会发布这个答案。您可以使用元组作为键直接定义字典:

>>> tuple_dict = {(100, 2): 0.3, (2, 5): 0.5}
>>> tuple_dict[(100,2)]
0.3

如果它将'(100,2)'转换为一个有问题的元组,并且只涉及显式常量,那么你可以尝试:

>>> eval('(100,2)', None, None)
(100, 2)

None参数阻止程序变量的值泄漏到用户空间。