다음 구문의 이해가 잘 안되서 조언 부탁드리고 싶습니다


def unit_propagate(clauses, symbol):
    output = []
    for c in clauses:
        if not isinstance(c, Or):
            output.append(c)
            continue
        for arg in c.args:
            if arg == ~symbol:
                output.append(Or(*[x for x in c.args if x != ~symbol]))
                break
            if arg == symbol:
                break
        else:
            output.append(c)
    return output



다른 부분이 아니라 저 output.append(Or(*[x for x in c.args if x!= ~ symbol]))를 어떻게 해석해야 하는지를 잘 모르겠습니다

output list 뒤에 append method를 실행하는건 알겠는데..... 저 내부의 내용을 어떻게 해석해야할지 ㅠㅠ


Or은 sympy module 내부에 있는 class Or입니다 (>>> from sympy.logic.boolage import Or 이 된 상태입니다)

symbol은 하나의 ATOM으로써 True or False 의 값을 가지고 있습니다.

clauses는 bound 된 ATOM들의 집합이구요(배열 내부에 저장중입니다)


해석 좀 부탁드리겠습니다 ㅠ