我有以下不同值的示例脚本,我的实际xy列表要大得多:
xy1 = value1
xy2 = value2
xy3 = value3
xy4 = value4
xy5 = value5
xy6 = value6
xy7 = value7
xy8 = value8
xy9 = value9
xytotal = sum((xy1,xy2,xy3,xy4,xy5,xy6,xy7,xy8,xy9))
当我有数千个这样的xy变量时会出现问题,将它们全部添加到sum函数中会变得很繁琐。
现在有办法告诉python为每个不同的xy(xy1,xy2,xy3等等)的所有xy值求和吗?
由于
答案 0 :(得分:3)
不要使用单独的变量。如果您的数据足够复杂,请使用列表,可能与其他数据结构混合使用。
虽然我们在这里:Variable names aren't data。假设Python抛出你的变量名。
答案 1 :(得分:1)
回答您的问题,是的,您可以在脚本中声明一堆xy变量并将它们求和:
<p>{{ 'your text'|upper }}</p>
为什么要这么做... xy1 = 1
xy2 = 2
xy3 = 3
xy4 = 4
xy5 = 5
xy6 = 6
xy7 = 7
xy8 = 8
xy9 = 9
xy10 = 10
cached = locals()
xytotal = sum(cached[k] for k in locals() if k.startswith('xy'))
答案 2 :(得分:0)
all_xy = [value1, value2, value3, ...]
# Note that xy_all[n-1] = valuen
xy_total = sum(all_xy)
如果您想使用all_xy[n] = valuen
抓取它们,则可以使用all_xy = [0, value1, value2, value3, ...]
。
使用列表结构在Python中绝对是首选使用变量名称,一方面可以轻松编写列表推导,例如:
positive_xy = [ xy for xy in all_xy if xy>0 ]
positive_xy_total = sum(positive_xy)
另一种选择是使用字典。
了解您是否在startswith('xy')
中查看locals()
的另一个原因是您可以轻松地尝试对“意外”变量求和,例如一个函数,它会导致Python异常。