用法作为字典键
问题描述:
可能重复:
In what case would I use a tuple as a dictionary key?用法作为字典键
一个元组的优点在于,它们可被用作在相对列表字典键,因为元组是不可变和列表是可变的。
我还没有看到一个有用和真实的例子,其中元组被用作字典键。你能用智能元组作为字典键来展示一个或几个有用的例子吗?
编辑: 在许多情况下,生成的数据结构可以实现为一个类,而不是字典与键作为元组。解释为什么在你的例子中使用字典而不是类更好。
答
我想你可以使用一个元组到棋盘定义单元:
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)
答
例如,你需要一个字典员工, 在现实世界中,2名(姓氏和名字可以相同)(即2人同名),但与电话号码组合的姓名(第一名和最后一位)不能相同。 在这种情况下,元组作为密钥是必需的。
答
你有特性的一组中的2D/3D空间中的点:
shape = {(2,3,4) : {'visible' : False, 'color': 'red'},
(1,0,2) : {'visible' : True, 'color': 'blue'},
(1,2,4) : {'visible' : True, 'color': 'green'}}
,或者您有例如自定义dictbased关系数据库基于两行的主键 :
bill_db = {('customer_a', 'date') : bill_properties,
... }