2011-02-03 8 views
0

私は例えばIndexListProperty()をインデックス[1]から印刷する方法は?

class Category(db.Model): 
    merchandise = db.StringListProperty() 
    content = db.StringListProperty()   
    topics = db.StringListProperty() 

モデルを持って、merchandiseリストは["merchandise","tshirt","book","poster"]

である私は、この

elif merchandise_type == "merchandise": 
    query = Category.all() 
    e = query.get() 

    self.response.out.write("""<ul>""") 
    for i in range(len(e.merchandise)): 
     self.response.out.write("""<li><a href="/tag?tag=%s">%s</a></li>""" 
     % (e.merchandise[i], e.merchandise[i])) 
    self.response.out.write("""</ul>""") 

のようなリストを印刷するが、私は"merchandise"を印刷する必要はありません。

e.merchandise[0]ではなく、e.merchandise[1]からどうやって始めますか?

ありがとうございます! 1の代わりに

0の編集からループを開始しますrange()の最初の引数を変更

+1

なぜ、「e.merchandiseのmerchandise_item:...」ではないのですか?経験則として、 'range(len(...)) 'を使用していて、インデックスそのもの以外のものを使用しているのであれば、間違っています。 – delnan

+0

@delnan:ありがとう!私はそれに応じて線を変更しました。私は範囲を述べることなくループできることを知らなかった。詳細はどこで調べますか? – Zeynel

+1

@Zeyel:Pythonチュートリアル。真剣に。 'for'が常にiterablesで動作し、' range'がある特定の反復可能であることを知らないなら、あなたはその言語を知らないのです。 – delnan

答えて

1

for i in range(1, len(e.merchandise)):は:もちろん、あなたはなぜを持っているんです、愚かな間違い、range()

+0

すごく、ありがとう!ところで、私はあなたが "len()"ではなく、 'range()'の最初の引数を変更することを意味すると思います。 – Zeynel

+0

@Zeynel:ヘッドアップありがとう、私は答えを更新した – Jordan

3
for merch in e.merchandise[1:]: 
    self.response.out.write('<li><a href="/tag?tag=%s">%s<a/></li>' % (merch, merch)) 

質問をlen()を変更しましたあなたのリストの最初の要素のような最初の要素。

+0

はい、私はソート順を変更し、もはや最初の項目ではないので、これは良いアイデアではないことに気づいた。ディレクトリページのカテゴリ名として使用するリストの最初に「商品」を配置します。データストアからプロパティ名を取得する方法について別の質問をします。 – Zeynel

関連する問題