python – 从字典中提取键/值对

好的,这是一个Python问题:

我们有一本字典:

my_dict = {
           ('John', 'Cell3', 5): 0, 
           ('Mike', 'Cell2', 6): 1, 
           ('Peter', 'Cell1', 6): 0, 
           ('John', 'Cell1', 4): 5, 
           ('Mike', 'Cell2', 1): 4, 
           ('Peter', 'Cell1', 8): 9
          }

如何制作另一个只包含名称为“Peter”的键/值对的字典?

如果你将这个字典转换为元组的元组列表,它会有所帮助吗?

tupled = my_dict.items()

然后再把它变回字典?

你如何用列表理解来解决这个问题?

提前致谢!

解决方法:

试试这个,使用Python 2.7或更新版本中提供的dictionary comprehensions

{ k:v for k,v in my_dict.items() if 'Peter' in k }

或者,如果我们确定名称将始终位于第一个位置,我们可以执行此操作,这会更快一些:

{ k:v for k,v in my_dict.items() if k[0] == 'Peter' }

如果您使用的是旧版本的Python,我们可以使用生成器表达式和dict()构造函数的正确参数获得等效结果:

dict((k,v) for k,v in my_dict.items() if k[0] == 'Peter')

无论如何,结果如预期:

=> {('Peter', 'Cell1', 8): 8, ('Peter', 'Cell1', 6): 0}
上一篇:python中复杂的列表和字典查找


下一篇:为什么Python中的元组可以反转但没有__reversed__?