3
我有一些1或2維的數據。我想遍歷數據集中的每個模式並對其執行foo()。如果數據是1D,那麼將此值添加到列表中,如果它是2D,則取內部列表的平均值並追加此值。 我看到this question,並決定實施它檢查列表的實例。我不能在這個應用程序中使用numpy。檢查Python中的多維列表
outputs = []
for row in data:
if isinstance(row, list):
vals = [foo(window) for window in row]
outputs.append(sum(vals)/float(len(vals)))
else:
outputs.append(foo(row))
有沒有更好的方法做到這一點?在每次運行中,每個模式將具有相同的維度,所以我可以爲1D/2D創建一個單獨的類,但這會爲我的代碼添加很多類。數據集可能會變得很大,所以快速解決方案更可取。
我會檢查hasattr(行[0], '\ __ ITER \ __'),而不是isinstance(),但我不認爲有一個更快的方式或更優雅的方式。 – knitti
看起來很整潔我 – ForgetfulFellow
參見http://stackoverflow.com/questions/1952464/in-python-how-do-i-determine-if-an-object-is-iterable。 – alecxe