[Python]Set(리스트 중복 제거), join(문자열 합치기)
카테고리: py
Set
set 자료구조 정의
set()은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. 중복을 허용하지 않으며 순서가 없다.
인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 할 수 있다.
#list를 set으로 변환해 중복값 삭제 숫자 타입
set([1,1,2,2,3,3,4,5])
#{1, 2, 3, 4, 5}
#list를 set을 변환해 중복값 삭제 문자열 타입
set(['a', 'a', 'b', 'b', 'c'])
#{'b', 'c', 'a'}
#숫자와 문자열 혼합 타입
set([1, 1, 'x', 'x'])
#{1, 'x'}
set은 중복 요소를 허용하지 않기 때문에 중복 값이 삭제된다.
set를 통한 연산
- 교집합
&
기호를 사용하여 교집합을 구할 수 있다.intersection()
을 사용하여 구할 수 있다.
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s3 = s1 & s2
s4 = s1.intersection(s2)
print(s3) # {4,5,6}
print(s4) # {4,5,6}
- 합집합
|
기호를 사용해 합집합을 구할 수 있다.union()
을 사용하여 구할 수 있다.
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
s3 = s1 | s2
s4 = s1.union(s2)
print(s3) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(s4) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
- 차집합
-
를 사용하여 차집합을 구할 수 있다.difference()
을 사용하여 구할 수 있다.
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
r1 = s1 - s2
r2 = s2 - s1
r3 = s1.difference(s2)
r4 = s2.difference(s1)
print(r1) # {1, 2, 3}
print(r2) # {8, 9, 7}
print(r3) # {1, 2, 3}
print(r4) # {8, 9, 7}
집합 자료형 관련 함수
- 값을 1개 추가(.add())
- 값을 여러개 추가(.update())
- 특정 값 제거(.remove())
s1 = set([1,2,3])
s1.add(4)
print(s1) #result : {1, 2, 3, 4}
#-------------------------------------#
s1 = set([1,2,3])
s1.update([4,5,6])
print(s1) #result : {1, 2, 3, 4, 5, 6}
#-------------------------------------#
s1 = set([1,2,3])
s1.remove(2)
print(s1) #result : {1, 3}
join
문자열 나누기- split() 함수
파이썬에서 문자열을 쪼개는 함수는 split()함수이다. 이 함수는 파라미터로 구분자를 주면 해당 구분자를 기준으로 문자열을 잘라 리스트 형식으로 반환한다. 만약 파라미터에 아무것도 주지 않으면 공백을 기준으로 문자를 나눈다.
str = "Hi my name is limcoing"
splitted_str = str.split()
print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
문자열 합치기 - join 함수
”“.join(리스트)
str = "Hi my name is limcoing"
splitted_str = str.split()
print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
------------------------------------------
joined_str = "".join(splitted_str)
print(joined_str)
Himynameislimcoing
“특정문자열”.join(리스트)
str = "Hi my name is limcoing"
splitted_str = str.split()
print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
joined_str = "-".join(splitted_str)
print(joined_str)
Hi-my-name-is-limcoing
str = "Hi my name is limcoing"
splitted_str = str.split()
print(splitted_str)
['Hi', 'my', 'name', 'is', 'limcoing']
joined_str = " ".join(splitted_str)
print(joined_str)
Hi my name is limcoing
댓글 남기기