说我得了一个字典:
{'我喜欢':14,'你喜欢':12,'他喜欢':2}
我想换成像:
{('我','喜欢'):14,('你','喜欢'):12。 ( '他', '喜欢'):2}
所以我想将dict表单字符串的键更改为字符串元组。 我试着去做:
File "/usr/lib/python3.5/ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
of the
^
但我得到了:
IncID
最有效的方法是什么?
答案 0 :(得分:2)
您可以在字典理解中执行此操作:
d = {'I like': 14, 'you like': 12, 'he likes': 2}
new_d = {tuple(k.split()): v for k, v in d.items()}
new_d
{('I', 'like'): 14, ('he', 'likes'): 2, ('you', 'like'): 12}
答案 1 :(得分:2)
您只需要内置tuple()
:
source = {'I like': 14, 'you like': 12, 'he likes': 2}
target = { tuple(k.split()):source[k] for k in source}
print(target)
输出:
{('I', 'like'): 14, ('you', 'like'): 12, ('he', 'likes'): 2}
P.S。
请勿将dict
用作变量名称。
答案 2 :(得分:1)
您可以使用词典理解来解决这个问题:
>>> original = {'I like': 14, 'you like': 12, 'he likes': 2}
>>> new_d = {tuple(k.split()): v for k,v in original.items()}
>>> new_d
{('I', 'like'): 14, ('you', 'like'): 12, ('he', 'likes'): 2}
答案 3 :(得分:0)
您可以采用两种方式:
数据:
your_data={'I like': 14, 'you like': 12, 'he likes': 2}
一线解决方案:
print({tuple(key.split()):value for key,value in your_data.items()})
输出:
{('I', 'like'): 14, ('he', 'likes'): 2, ('you', 'like'): 12}
详细解决方案:
以上词汇理解与:
相同final_dict={}
for key,value in your_data.items():
final_dict[tuple(key.split())]=value
print(final_dict)
输出:
{('I', 'like'): 14, ('he', 'likes'): 2, ('you', 'like'): 12}