2015-03-25 97 views
0

我有一組值得到修改,像這樣:我可以用循環來壓縮這些值嗎?

iskDropped = irrelevant1 
iskDestroyed = irrelevant2 
iskTotal = irrelevant3 

iskDropped = condense_value(int(iskDropped[:-7].replace(',',''))) 
iskDestroyed = condense_value(int(iskDestroyed[:-7].replace(',',''))) 
iskTotal = condense_value(int(iskTotal[:-7].replace(',',''))) 

正如你所看到的,三條線都要經過同樣的變化。 (縮寫,簡寫和逗號刪除),然後覆蓋其原始值。

我想盡可能地濃縮這三條線,因爲它感覺效率低下。

我是想這樣的事情:

for value in [iskDropped,iskDestroyed,iskTotal]: 
    value = condense_value(int(value[:-7].replace(',',''))) 

它,如果你變成一個打印語句成功並打印正確的值,但它不覆蓋/更新值(iskDropped,iskDestroyed的方面的工作,和iskTotal),我需要在程序中稍後調用。

是否有可能在Python中壓縮這些行?如果有的話,有人能指出我的方向是正確的嗎?

回答

3

你可以這樣說:

iskDropped, iskDestroyed, iskTotal = [condense_value(int(value[:-7].replace(',',''))) for value in [iskDropped, iskDestroyed, iskTotal]] 

這種運作方式是透過3個變量的列表循環,執行在每個condense_value功能,並創建一個結果列表,最後解包列表迴轉化爲原始值。

相關問題