【发布时间】:2013-04-05 19:12:25
【问题描述】:
我想写一个条件 for 循环,如果一个数组的长度为 1,使用一个 for 循环标题,如果这个 len(array) > 1 并且 == len(array2),使用不同的 for 循环标题,如果这些条件都不成立,请退出并选择我的错误。 真正的问题是我不想有这个 if 语句,然后是 for 循环,当 for 循环实际上是相同的时,除了标题,而且相当长,所以加倍代码似乎是一种浪费。
有没有一种很好的方法可以做到这一点,我只需要编写一次 for 循环的内容?
注意:xarray 和 tarray 是多维 numpy 数组 即)xarray = array([[1,2,3],[4,5,6]])
代码片段如下所示:
if len(tarray) > 1 and len(xarray) == len(tarray):
for x,ts in zip(xarray,tarray):
#stuff
if len(tarray) == 1:
for x in xarray:
#same stuff as above for loop
else:
print 'Dimension Mismatch -- Quitting:'
quit()
【问题讨论】:
-
如果您提供更多关于“for 循环的内容”的信息,这将非常有帮助。我怀疑,因为您使用的是 numpy,某种 broadcasting 可能是适合这种情况的正确工具。
-
for 循环的核心是对与 tarray 中的 t 值对应的 xarray(x 值)中的数组进行三角插值。本质上,我想说“嘿,xarray 有 5 个 x 数据块,而 tarray 只有一个,对所有 5 个 xarray 使用相同的 tarray 值”或“嘿,xarray 有 n 个块,tarray 也是如此,所以让我们使用 xarray[i] 和 tarray[i] from i = 0,1,...,n"
标签: python if-statement for-loop python-2.7 numpy