【发布时间】:2015-01-23 13:53:11
【问题描述】:
我在这里有点难过。这是一段 Python 代码:
try:
if parse[index+1][0] != "5":
individual_services+=[individual_services_cur]
individual_services_cur=[]
except IndexError:
warning("Reached end of file. No next element")
individual_services+=[individual_services_cur]
individual_services_cur=[]
基本上,如果parse 中的下一个元素不是“5”或者不是“5”,我希望这两个操作(将individual_services_cur 列表添加到individual_services 列表和清除individual_services_cur 列表)发生'不存在(基本上是文件的结尾)。
我想知道是否有一种更优雅(甚至可能是他们所说的“pythonic”)的方式来编写此代码,例如,无需将这两个动作编写两次。我想不出finally 或else 语句有什么好的解决方案,而且我似乎无法摆脱try 语句,因为一旦到达文件末尾,IndexError 异常就会不可避免地引发。
【问题讨论】:
-
看起来你想要发生的两件事根本不依赖于
if parse[index+1][0] != "5"——所以只需将它排除在外(和try/except)并执行其中的两件事。 -
@martineau:这不是真的,如果元素是“4”那么代码不会运行
-
@Highstaker 以下任何答案对您有帮助吗?如果是,请选择一个作为您的答案。
标签: python if-statement python-3.x try-catch