使用元组作为字典键

时间:2012-01-27 10:51:19

标签: python types dictionary tuples immutability

  

可能重复:
  In what case would I use a tuple as a dictionary key?

元组的一个优点是它们可以用作与列表相反的字典键,因为元组是不可变的,列表是可变的。

我没有看到将元组用作字典键的有用且真实的示例。您是否可以通过智能使用元组作为字典键来显示一个或几个有用的示例?

编辑: 在许多情况下,生成的数据结构可以实现为类而不是字典,其中键作为元组。解释为什么在你的例子中使用字典而不是类更好。

3 个答案:

答案 0 :(得分:3)

例如,您需要员工的字典, 在现实世界中,2个名字(名字和姓氏可以相同)(即2个同名的人)但名字(第一个和最后一个)与电话号码的组合不能相同。 在这种情况下,需要将元组作为键。

答案 1 :(得分:3)

您在2D / 3D空间中有一组具有属性的点:

shape = {(2,3,4) : {'visible' : False, 'color': 'red'},
         (1,0,2) : {'visible' : True, 'color': 'blue'},
         (1,2,4) : {'visible' : True, 'color': 'green'}}

或者你有一个自定义的基于dict的关系数据库,例如:主键 基于两行:

bill_db = {('customer_a', 'date') : bill_properties,
           ... }

答案 2 :(得分:1)

我认为您可以使用元组在棋盘中定义单元格:

cell_1 = (1, 3)
cell_2 = (2, 5)
occupied_cells = {cell_1: True, cell_2: False}

def cell_is_occupied(cell):
    return occupied_cells.get(cell, False)
相关问题