系统多维(嵌套)数组的PEP8标准是什么?在
在Python中有很多方法来构造数据,下面给出了一些示例。显然,“最佳”方法是满足您需求的方法,尽管我们都看到了我们共享的“草率”数据结构。但是,是否有一种系统化的方法来实际构建作为标准的数据?在
例如,由不明确的[list]/(tuple)填充的字典:
# print John's grade
students = {'John':['1','7'],'Kate':['PreK','4']}
print(students['John'][0])
或者是用一本字典填充的稍微不那么含糊的字典:
^{pr2}$另一种可能的方法是使用类创建自己的数据类型和结构:
class timeZone:
def __init__(self, zone_code, city, offset):
self.zone_code = zone_code
self.city = city
self.offset = offset
self.DST_offset = DST_offset
Z = timeZone('Z','Zulu Time',int(0))
Y = timeZone('Y','Fiji',int(-12))
X = timeZone('X','American Samoa',int(-11))
W = timeZone('W','Honolulu, HI',int(-10))
V = timeZone('V','Juneau, AK',int(-9))
或者有其他方法/库是最好的吗?在
这不是关于Python或最佳实践,而是你真正需要的。在
如果您需要更明确的,第二种解决方案更好。但是,如果您需要将所有值作为一个整体传递给像
你可能更喜欢第一个,因为你可以做
foo(*students['John'])
这样可以节省你的时间。在一般来说,Python推荐清晰和显式编码。在第一个示例中,列表中的值的含义确实不明确,因此我一般不建议这样做。在
现在,您有时可能想编写这样的代码,因为其他一些更重要的原因。我想说:总是尽可能明确,这样数据的含义就很容易被看到。在
现在,可以通过多种方式明确表示数据的含义:
collections.namedtuple
(这比在字典中存储相同的内容更有效,而且由于类似.age
的属性访问,它可以更高效)。在相关问题 更多 >
编程相关推荐