我可以用循环压缩这些值吗?

时间:2015-03-25 00:13:52

标签: python loops python-2.7

我有一组可以像这样修改的值:

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(',','')))

如果您成功更改为print语句,则会打印正确的值,但在覆盖/更新我需要稍后在程序中调用的值(iskDropped,iskDestroyed和iskTotal)方面它不起作用。< / p>

是否可以在Python中压缩这些行?如果是这样,有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

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

这是通过循环遍历3个变量的列表,在每个变量的列表上执行condense_value函数并创建结果列表,然后最终将列表解包回原始值。