一个逻辑嵌套的结构,比如一个学生地址有一个平号,一个楼号(至少)。
现在,一个学生有一个名字,我们可以很容易地从单体地址中映射出来,使用,例如。这个 惯例。
address_to_student
或 等价:
student_by_address
student_by_address = {
"flat 5 floor 4": "sam",
"flat 2 floor 4": "max",
"flat 9 floor 1": "tim",
}
为了提高效率(比如说,如果 "jen "和 "max "一起搬进去了),我可能还想把地址存储为按楼层索引的字典。
基于大家对这个系统的热情,我想把地址存储成按楼层索引的字典。_by_
第二个链接答案中的格式,我已经用了,但是对于嵌套字典,我觉得不直观。
students_by_flat_by_floor = {
{
"floor 4": {
"flat 5": ["sam"],
"flat 2": ["max", "jen"]
},
"floor 1": {
"flat 9": ["tim"]
},
}
}
还有人觉得看不懂吗?如果这不是python的话,这将是一个类。作为python,我很想避免这种模板。这就是我为什么要问这个问题,到底是替代方案更可读还是python更可读?
floor_to_flat_to_students = ...
我对 (由)前者是。
而(到)后者。
在没有官方指南的情况下,我自己参考Guido的PEP 8,"愚蠢的一致性是小心灵的霍比特人"
对于非嵌套的字典,我更喜欢。student_by_address
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ to
我觉得这更像是一个动词,因为它可能适合于一个函数标识符。
对于嵌套词典来说,它必须是: floor_to_flat_to_students
.
会接受反对意见,但我认为这抓住了python的精神,对任何考虑这些问题的人。