2017-06-18 117 views
0

我有這個循環來創建導航欄。它的工作除了鏈接的佈局在不斷變化我每次運行程序For循環python不斷更改索引

nav ={'page1':'page1.html','page2': 'page2.html','page3':'page3.html','page4':'page4.html','page5':'page5.html'} 
output= "" 
for key in nav: 
    if nav[key]==active: 
     output+='<li class="active"><a href="%s">%s</a></li>' % (nav[key],key) 
    else: 
     linksHtml+='<li><a href="%s">%s</a></li>' % (nav[key],key) 
return output 
+5

您正在使用字典,字典無序。 –

+0

那我該怎麼辦? – KMarto

+0

您可以在迭代之前提取鍵並對它們進行排序:'keys = sorted(list(nav.keys()))'' – fafl

回答

1

使用集合包OrderedDict方法,您可以確保它們始終以您最初添加它們的相同順序出來。有關更多詳細信息,請參閱https://docs.python.org/2/library/collections.html#collections.OrderedDict

import collections 

nav ={'page1':'page1.html','page2': 'page2.html','page3':'page3.html','page4':'page4.html','page5':'page5.html'} 
output= "" 
for key in collections.OrderedDict(nav): 
    if nav[key]==active: 
     output+='<li class="active"><a href="%s">%s</a></li>' % (nav[key],key) 
    else: 
     linksHtml+='<li><a href="%s">%s</a></li>' % (nav[key],key) 
return output