上QQ阅读APP看书,第一时间看更新
2.12.6 key的选择
我们已经了解了用字符串作为key的情况。数值类型作为key的情况也是合法的。
students = { 1: { "name": "Liu", "id": "123456" }, 2: { "name": "Xu", "id": "123457" } } print(students[1])
执行结果如下:
{'name': 'Liu', 'id': '123456'}
但是,合法的不一定就是合理的。key的作用是让我们可以精准定位想要找的value,所以,一个合理的key应该具有以下特点。
·唯一性,一个key应该唯一对应一个value。
·代表性,key在逻辑上应该能代表一个value。比如,学号可以作为学生信息的key,身份证号可以作为身份信息的key。顺序递增的序列号作为key就不是很合适,虽然它具有唯一性。
所以,以上的例子写成如下形式更加合理。
students = { "123456": { "name": "Liu", "id": "123456" }, "123457": { "name": "Xu", "id": "123457" } } print(students)
执行结果如下:
{'123456': {'name': 'Liu', 'id': '123456'}, '123457': {'name': 'Xu', 'id': '123457'}}
在以上的例子中,学号作为key是合理的,因为它是唯一的,并且具有学生信息的代表性。学生姓名虽然很具有代表意义,但是我们无法保证它的唯一性,因为一个班级可能有3个“陈子涵”,可能有5个“张馨月”。
Key的选择不仅关乎代码的合法性,更关乎逻辑的合理性。