0

我目前正在 Python 2.7 中开发一个脚本,它从 URL 中提取大约 50 个字符串值并将这些值放在一个列表中。

对于这 50 个值中的每一个,它们每个都有另外 20 个相关的字符串值。

例如,我可以从 URL 中捕获两个初始值,它们是“Ford”和“BMW”。然后我将重新查询“福特”以找到相关的模型,例如“焦点”和“蒙迪欧”等......

最终我需要加入这些值以执行进一步的 URL 查询(即 www.ford.com/fiesta 和 www.ford.com/mondeo 和 www.bmw.com/xxxx)

我想知道最好的方法是构建我的数据吗?我正在考虑创建一个父值列表,然后为每个父值创建一个子列表,标题为父值及其在列表中的关联值。

有没有更好的方法来构建数据?

4

2 回答 2

2

一个友好的建议:保持简单。如有疑问,请参阅 Python 之禅:http: //www.python.org/dev/peps/pep-0020/

“简单胜于复杂。”

我会选择列表的字典,甚至更好的是defaultdicthttp://docs.python.org/2/library/collections.html#collections.defaultdict):

from collections import defaultdict


cars = defaultdict(list)

cars["Ford"].append("Mondeo")
cars["Ford"].append("Focus")
cars["BMW"].append("SuperCoolModel")

print cars

给出:

defaultdict(<type 'list'>, {'BMW': ['SuperCoolModel'], 'Ford': ['Mondeo', 'Focus']})
于 2013-02-10T21:48:50.203 回答
1

我认为 OOP 方法是组织此类数据的好方法,以便具有高凝聚力并更容易添加新功能。例如:

class CarBrand(object):
    def __init__(self, name):
        self.name = name
        self.domain = "http://www.%s.com/" % name.lower()

class CarModel(object):
    def __init__(self, name, brand):
        self.name = name
        self.brand = brand
    def url_query(self):
        return "%s%s" % (self.brand.domain, self.name.lower())
于 2013-02-10T21:58:42.217 回答