0

私は現在、URL から約 50 個の文字列値を取得し、これらの値をリストに配置するスクリプトを Python 2.7 で開発しています。

これらの 50 個の値のそれぞれについて、さらにそれぞれ 20 個の関連付けられた文字列値があります。

たとえば、URL から "Ford" と "BMW" という 2 つの初期値を取得できます。次に、「Ford」を再クエリして、「Focus」や「Mondeo」などの関連モデルを見つけます。

最終的には、これらの値を結合して、さらに URL クエリを実行する必要があります (つまり、www.ford.com/fiesta と www.ford.com/mondeo と www.bmw.com/xxxx)。

データを構造化するのに何が最善だったのだろうか? 親の値のリストを作成してから、親の値ごとに、親の値とリスト内の関連する値のサブリストを作成することを考えています。

データを構造化するより良い方法はありますか?

4

2 に答える 2

2

フレンドリーなアドバイス: 物事をシンプルに保ちます。疑問がある場合は、Zen of 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 に答える