안녕하세요 여러분, 다음과 같은 목록 값 목록이 있습니다.
list_of_values=[['A','B'],['A','B','C'],['D','E'],['A','C'],['I','J','K','L','M'],['J','M']]
그리고 나는 그 목록 안에 내가 가장 많은 양의 가치를 가진 목록 만 유지하고 싶습니다.
예를 들어 sublist1
: ['A','B']
A 와 B 도에 존재 sublist2
['A','B','C']
하므로 sublist1
. 대한 동일 sublist4
. 이 sublist6
있기 때문에 제거 J 및 M은 상기 이상 존재했다 sublist5
.
결국 나는 얻을 것이다 :
list_of_no_redundant_values=[['A','B','C'],['D','E'],['I','J','K','L','M']]
기타 예시 =
list_of_values=[['A','B'],['A','B','C'],['B','E'],['A','C'],['I','J','K','L','M'],['J','M']]
예상 출력 :
[['A','B','C'],['B','E'],['I','J','K','L','M']]
누군가 아이디어가 있습니까?
mylist=[['A','B'],['A','C'],['A','B','C'],['D','E'],['I','J','K','L','M'],['J','M']]
def remove_subsets(lists):
outlists = lists[:]
for s1 in lists:
for s2 in lists:
if set(s1).issubset(set(s2)) and (s1 is not s2):
outlists.remove(s1)
break
return outlists
print(remove_subsets(mylist))
결과적으로 [['A', 'B', 'C'], ['D', 'E'], ['I', 'J', 'K', 'L', 'M']]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다