在python中使用标志的备用apporach

时间:2016-06-29 13:05:40

标签: python

以下代码的最佳/替代pythonic方法是什么,

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

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:2)

li=["Header",1,2,3,4,5]
do_stuff(li[0]) # first ....
for i in li[1:]:
    normal_stuff(i) # second ...

这将首先处理标题,然后遍历列表的其余部分。

答案 2 :(得分: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)

如果您要处理包含不同数据类型的数据的列表,这种方式会有所帮助。它会使你的循环看起来更清晰,更易于管理。

玩得开心;)