将带有元组的字典转换为包含键和值的元组的键

Joe*_*Joe 3 python dictionary tuples

我有一个这样的字典:

d = {('a','b','c'):4, ('e','f','g'):6}
Run Code Online (Sandbox Code Playgroud)

我希望有一组像这样的元组:

{('a', 'b', 'c', 4), ('e', 'f', 'g', 6)}
Run Code Online (Sandbox Code Playgroud)

我试过这样的方式:

b = set(zip(d.keys(), d.values()))
Run Code Online (Sandbox Code Playgroud)

但输出是这样的:

set([(('a', 'b', 'c'), 4), (('e', 'f', 'g'), 6)])
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?谢谢!

sch*_*ggl 6

在Python> = 3.5中,您可以在此集合理解中使用泛化解包:

{(*k, v) for k, v in d.items()}
# {('a', 'b', 'c', 4), ('e', 'f', 'g', 6)}
Run Code Online (Sandbox Code Playgroud)

但是,Aran-Fey建议的更普遍适用的tuple连接方法并不是更加冗长:

{k + (v,) for k, v in d.items()}
Run Code Online (Sandbox Code Playgroud)