2012-09-11 96 views
-3

可以在Python中簡化它嗎?簡化東西

status = get_git_status() 
for s in ("modified", "deleted", "Untracked files:"): 
    if s in status: 
     pass 
+2

你想做什麼?我可以簡化該代碼以簡化爲'status =「foobar」',因爲這是唯一可以看到的影響(變量設置)的代碼。 –

+0

這真的是你的代碼?在'狀態'中總是會返回'False',因爲你基本上會在'foobar'中修改'if',等等...... –

+0

假設狀態是動態分配的。我試圖循環在元組中的項目,並查看它們是否存在於動態生成的字符串中。 – tipu

回答

1

這取決於您是否需要爲每個匹配執行一個操作,或者如果您只是有興趣,如果他們中的任何一個匹配。如果你只是有興趣,如果其中任何一個匹配,使用any

if any(s in status for s in ("modified", "deleted", "Untracked files:")): 
    whatever() 
0

如果「修改」,並在狀態「刪除」,將您運行的通行碼兩次?如果你只需要運行一次,你可以使用任何():

status_list = ("modified", "deleted", "Untracked files:") 

if any(s in status for s in status_list): 
    pass