2016-06-29 69 views
-1

什麼是下面的代碼的最佳/備用Python的方式,在Python中使用標誌替代apporach

li=["Header",1,2,3,4,5] 
l=0 
for i in li: 
    if l == 0: 
     ..... 
     l += 1 
    else: 
     .... 
+4

它主要依賴隱藏在'....'的代碼。請提供真實的用例。 – soon

回答

3

您可以更換:

l=0 
for i in li: 
    if l ==0: 
     frobnosticate(i) 
     l+= 1 
    else: 
     twiddle(i) 

有了:

#do something with header outside the loop 
frobnosticate(li[0]) 

#loop over everything but the first element 
for i in li[1:]: 
    twiddle(i) 
2
li=["Header",1,2,3,4,5] 
do_stuff(li[0]) # first .... 
for i in li[1:]: 
    normal_stuff(i) # second ... 

這將首先處理標題,然後遍歷列表的其餘部分。

0

使用切片訪問這樣的元素模式已經足夠了。但是,如果你的列表數據類型不是固定/已知的,你也可以使用字典元素重定向到指定的函數:

def access_string_element(string): 
    .... 
def access_integer_element(integer): 
    .... 

access_table = dict() 
access_table[str] = access_string_element 
access_table[int] = access_integer_element 
... 

然後,你可以使用這樣的字典:

for element in li: 
    access_table[type(element)](element) 

這如果您打算處理包含具有不同數據類型的數據的列表,那麼可以獲得更多的好處它會讓你的循環看起來更清晰,並且易於管理。

玩得開心;)