문제에서 교집합, 합집합, 교집합을 구성하고 각종 메소드도 구현하라고 했다.
class Set : def __init__(self, i = []) : if isinstance(i, Set) == True : self.set_list = i.set_list[:] else : self.set_list = list(i) def __and__(self, other) : temp = [] for k in other.set_list : if k in self.set_list : temp.append(k) return temp def __or__(self, other) : temp = self.set_list[:] for k in other.set_list : if k not in self.set_list : temp.append(k) return temp def __sub__(self, other) : temp = [] for k in self.set_list : if k not in other.set_list : temp.append(k) return temp def __len__(self) : return len(self.set_list) def __getitem__(self, i) : return self.set_list[i] def __setitem__(self, i, value) : if value not in self.set_list : self.set_list[i] = value def __delitem__(self, i) : self.set_list.pop(i) def __contains__(self, item) : return item in self.set_list def __nonzero__(self) : if self.set_list == [] : return 0 else : return 1간단한 클래스를 작성하면 위와 같이 작성해볼 수 있다. 좀더 제대로 작성하려면 수정이 더 필요하지만 집합 연산은 Set 끼리만 하고, 인덱스 호출은 인덱스 범위 내에서만 사용한다는 가정을 두었다.
댓글 없음:
댓글 쓰기