我有一些要存储的基本数据,我正在寻找比我想出的更好的解决方案。 我有多个数据条目,每个条目有 4 个字段,name,url,currYear,availYears
我可以像这样用一个简单的数组来解决这个问题:
data = [
['test-name', ['http://example.com', '2015', '2015,2014']]
['next-name', ['http://example.org', '1999', '1999']]
]
但是当尝试访问每个数组中的数据时,这会变得困惑。我最终得到了这样的 for 循环
for each in data:
name = each[0]
url = each[1][0]
currYear = each[1][1]
我更喜欢做一些类似于字典的事情,我可以在其中通过键名引用我想要的内容。这不是有效的语法,但希望它能说明问题。
data = {'entry1': {'name': 'test-name'}, {'url': 'http://example.com'}, {'currYear': '2015'}, {'availYears': '2015,2014'}}
然后我可以提取 entryX 的 url 数据。
编辑: 几个很好的回应。我决定继续创建一个类,因为 1) 它满足我的需要 2) 通过分离功能帮助清理代码,以及 3) 了解包、模块和类与 Java(我更熟悉)相比如何工作。 除了创建类之外,我还创建了 getter 和 setter。
class SchoolSiteData(object):
def __init__(self, name, url, currYear, availYears):
self.name = name
self.url = url
self.currYear = currYear
self.availYears = availYears
def getName(self):
return self.name
def getURL(self):
return self.url
def getCurrYear(self):
return self.currYear
def getAvailYears(self):
return self.availYears
def setName(self, name):
self.name = name
def setURL(self, url):
self.url = url
def setCurrYear(self, currYear):
self.currYear = currYear
def setAvailYears(self, availYears):
self.availYears = availYears
请您参考如下方法:
类可以使它更易于使用:例如:
class Entry(object):
def __init__(self, name, url, currYear, availYears):
self.name = name
self.url = url
self.currYear = currYear
self.availYears = availYears
entry1 = Entry('test-name', 'http://example.com', '2015', '2015,2014')
entry2 = Entry('next-name', 'http://example.org', '1999', '1999')
data = [entry1, entry2]
for entry in data:
print entry.name
print entry.url
print entry.currYear
print entry.availYears
print
