是否有一种简单的方法可以将字符串中的键更改为元组中的元组? E.g:
dict = {'100,2': 0.3, "2,5" = 0.5}
答案 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
参数阻止程序变量的值泄漏到用户空间。