![](/img/trans.png)
[英]I don't know why there is 'gurobipy.LinExpr' object is not iterable
[英]How to iterate when you don't know if your object will be iterable
有時我在axes[0]
有多個軸,有時只有一個axes[0]
。 所以要迭代它/它們,我使用以下內容:
for ax,_x in [(axes[0], X[0])] if len(X)==1 else zip(axes[0],X):
這樣做的慣用方法是什么?
通常,最好的方法是迭代。 不要求許可 ( if
檢查,請將其包裝在try-except
塊中以處理“寬恕”案例。
正如其他人所評論的那樣,如果X
是大小為1
的列表,那么你不應該創建不同的情況,它仍然是可迭代的。 如果您使用zip
,它將以最短的可迭代次數停止:
>>> l = [1, 2, 3]
>>> y = [1, 2]
>>> list(zip(l, y))
[(1, 1), (2, 2)]
如果您需要的更長的迭代所有的值工作,為短路一個的遺漏值提供默認值,使用zip_longest
從適當itertools fillvalue
:
>>> from itertools import zip_longest
>>> list(zip_longest(l, y, fillvalue=0))
[(1, 1), (2, 2), (3, 0)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.