我将下面的代码作为两个列表解析,但我想要一种方法,我只需要在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