Pythonic方式执行大型案例/开关

时间:2010-09-22 19:52:19

标签: python

我很确定这是Python中一个非常基本的概念,如果有人能帮助我理解如何以pythonic / clean方式执行以下操作,我会很高兴。我对编码很新,所以我只是举个例子。我认为我要做的事情显而易见。

for textLine in textLines:
   foo = re.match('[1-100]', thing)
   if foo:
     list = db.GqlQuery("SELECT * FROM Bar").fetch(100)
     if thing == '1':
       item = list[0]
     elif thing == '2':
       item = list[1]
     elif thing == '3':
       item = list[2]
     .
     .
     .
     elif thing == '100':
       item = list[99]

感谢您的帮助!

2 个答案:

答案 0 :(得分:11)

为什么不这样做呢

item = list[int(thing) - 1]

在更复杂的情况下,您应该使用字典映射输入到输出。

答案 1 :(得分:7)

对于你展示的特定代码,pythonic的东西是用以下代码替换整个if-ladder:

item = list[int(thing)-1]

当然,您的真实代码可能不会像这样崩溃。