我將下面的代碼作爲兩個列表解析,但我想要一種方法,我只需要在edges
之間迭代一次。在python列表中查找兩個不同組的索引到兩個列表中
out_indices = [x for x, (p, d) in enumerate(edges) if d == "O"]
in_indices = [x for x, (p, d) in enumerate(edges) if d == "I"]
我可以用非常不Python的循環做了edges
和具有兩個預初始化列表把x
與兩個if語句,但我想知道是否有做Python的/漂亮的方式這個。
我不會說兩個預先初始化的列表完全是非pythonic ...它是完全可讀的......除非'enumerate(edges)'昂貴或具有副作用(例如,邊緣可能是一個生成器),否則它是完全可讀的...... – 2014-10-29 21:03:00
。 ,我認爲更容易看出這兩種理解發生了什麼,所以我可能會用這個 – 2014-10-29 21:15:50
什麼時候循環和'if'語句變成非pythonic?如果事情簡單明瞭,可以理解,Pythonic就是非常高的機會。 – 2014-10-29 21:26:25