리스트 L의 각 요소는 필드 (필드, 크기)의 튜플입니다. 예를파이썬에서 가장 교차하지 않는 멤버를 찾는 컬리스트 목록
L = [ (['A','B'], 5), (['A'], 6), ('C', 1)]
위해 나는 단지 교차하지 않는 구성원이 포함되도록 목록을 추려 싶습니다, 그리고 남아있는 각 구성원은 교차 할 수있는 어떤 다른 회원보다 큰.
def betterItem(x, y):
return (x != y and
set(x[0]) & set(y[0]) and
x[1] > y[1])
for i in range(len(L)-1):
L[:] = [x for x in L for y in L if betterItem(x, y)]
이 일을 더 나은/빠른/더 파이썬 방법이 있나요 : 그래서 예를 들어리스트 L은 현재 내가 그렇게처럼 구현 한
L = [ (['A'], 6), ('C', 1)]
로 감소 될 것이다?
도움 주셔서 감사합니다.
[(['A'], 6), (['C'], 1)]
에서
나에게 상당히 비현실적 인 것처럼 보입니다. 네가 그곳에서 너무 느린가? 목록 구성원간에 일치하는 인덱스 쌍을 찾은 다음 해당 인덱스에서 betterItem 만 호출하여 인덱스 구성원을 줄이기 위해 시도해 볼 수 있습니다. –
@Lattyware 완료, 알림을 주셔서 감사합니다 ... 내 SO 방문은 매우 가끔 경향이 있으며 그렇게하는 것을 잊어 버립니다. – Albeit