Skip to main content
 首页 » 编程设计

python之将python列表中两个不同组的索引查找到两个列表中

2025年05月04日13mengfanrong

我有以下代码作为两个列表理解,但我想要一种方法,我只需要迭代 edges 一次。

        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"] 

我可以通过 edges 上的非常非 pythonic 循环来完成它,并有两个预初始化列表将 x 放入两个 if 语句中,但我想知道如果有一个 pythonic/prettier 方法来做到这一点。

请您参考如下方法:

不,你只需要做你想避免的事情(顺便说一句,根本不是非 pythonic 的)。想一想 - 如果您想在一次迭代中完成它,您必须有条件地附加到任何一个列表,这显然不适用于理解:

out_indices = [] 
in_indices = [] 
 
for x, (p, d) in enumerate(edges): 
    if d == 'O': 
        out_indices.append(x) 
    elif d == 'I': 
        in_indices.append(x)