python 처리 list 에서 set, 최대 집합 을 가 져 옵 니 다.
2630 단어 python
list 의 set 대표 인의 쇼핑 상황 (이 예제 에는 len (list) 개인 이 있 음), 하나의 set 의 데이터, 예 를 들 어 {1, 4, 7} 은 현재 사람들 이 구 매 하 는 물품 색인 이 1, 4, 7 임 을 나타 낸다.우리 가 얻어 야 할 결 과 는 [{1, 4, 7, 2, 5, 1, 6, 34, 10}, {9, 11, 23}, {4, 23, 39}] 그 의 미 는 1, 4, 7, 2, 5, 6, 34, 10 아 이 템 을 구 매 하 는 사람 은 1 류 이 고 9, 11, 23 아 이 템 을 구 매 하 는 사람 은 1 류 이 며 4, 23, 39 아 이 템 을 구 매 하 는 사람 은 1 류 이다.emm... 그렇습니다.
주체 사상 은 두 set 가 교 집합 되 지 않 으 면 두 가 지 를 합쳐서 새로운 집합 으로 삼 는 다 는 것 이다.
두 가지 해결 방법 을 제공 합 니 다.
첫째: 귀속, 코드 는 다음 과 같다.
# one list
finallist = [] #
one.apend({len(one)}) # (list , )
#
def dealwithlist(first, one):
residue = []
if len(one) > 0:
for i in range(0, len(one)):
if first & one[i]:
first = first | one[i]
else:
residue.append(one[i])
# set
if finallist.__contains__(first):
if len(residue) > 1: # list
finallist.insert(0, finallist[-1]) # finalist
dealwithlist(residue[0], residue)
return
else: # ,
return
else:
if len(finallist) > 0:
finallist.pop(-1) # finalist
finallist.append(first)
dealwithlist(first, residue)
one. pop (- 1) \ # 마지막 결과 집 얻 기
재 귀 의 단점 도 뚜렷 하 다. 데이터 의 양 이 커지 고 비교 횟수 가 증가 할 때 최대 재 귀 깊이 를 초과 하여 스 택 이 넘 치 는 문제 가 발생 할 수 있다!대신의 해결 을 기다리다
둘 째: 동적 변경 list:
list_처리 할 list
def set_group(list_a):
tgt = []
# ,
for i, x in enumerate(list_a):
z = x #
flag = [] #
# , ,
if len(tgt) > 0:
for j, y in enumerate(tgt):
#
if z.intersection(y):
z = z.union(y)
# ,
flag.append(j)
# ,
if len(flag) > 0:
flag.reverse() # , list
for k in flag:
tgt.pop(k)
tgt.append(z)
return tgt
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.