我有一组可以像这样修改的值:
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中压缩这些行?如果是这样,有人能指出我正确的方向吗?
答案 0 :(得分:3)
你可以这样做:
iskDropped, iskDestroyed, iskTotal = [condense_value(int(value[:-7].replace(',',''))) for value in [iskDropped, iskDestroyed, iskTotal]]
这是通过循环遍历3个变量的列表,在每个变量的列表上执行condense_value
函数并创建结果列表,然后最终将列表解包回原始值。