일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Excel
- win32com
- 오피스
- python3
- html
- 윈도우11
- 문자열
- python
- Outlook
- Android
- pyqt5
- git
- matlab
- 파이썬
- 아웃룩
- 비주얼베이직
- VBA
- 파워포인트
- office
- Windows11
- 엑셀
- 깃
- 파이썬3
- 윈도우10
- pandas
- windows
- 파이썬GUI
- pythongui
- Windows10
- 안드로이드
Appia의 IT세상
파이썬[Python] 리스트에서 중첩된 맴버 제거 하기 본문
파이썬[Python] 리스트에서 중첩된 맴버 제거 하기
이번 포스팅은 파이썬[Python]의 컨테이너 자료형인 리스트에 대한 부분을 조금 다루어 볼까 합니다. 실제 많은 사용자들은 리스트를 매우 많이 사용합니다. 사용하기가 간단하고, 접근성이 매우 쉽기 때문이죠. 사용하다보면, 많은 리스트들을 생성하고, 이를 토대로 다양한 부분들에 대한 시도가 이루어집니다.
이번 포스팅에서는 리스트내에서 중첩된 부분을 제거하는 방법에 대해서 살펴보겠습니다.
리스트에서 중첩된 부분 제거 하기
한개의 리스트를 선언하고, 그 안에서 중첩된 부분들이 존재하는 것을 지우는 방법에 대해서 살펴보겠습니다. 간단하게 다음 부분을 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
>>>l1 = [1, 2, 4, 1, 2, 5, 6, 8, 9]
>>>l1
[1, 2, 4, 1, 2, 5, 6, 8, 9]
>>>l2 = []
>>>for i in l1 :
... if i not in l2:
... l2.append(i)
>>>l2
[1, 2, 4, 5, 6, 8, 9]
|
cs |
흔히들 이와 같이 작업을 진행합니다. 즉 2개의 리스트를 생성하고, 다른 한개로 객체를 옮깁니다. 그러던 중 존재하는 객체가 존재한다면 그 부분을 버리는 형태입니다. 가장 쉽지만 반복을 해야하고 하니, 그닥 썩 효율성이 있다고 할 수는 없습니다.
이제 좀 이런 부분에 손을 대본 사람들은 다음과 같은 방법을 사용합니다.
1
2
3
4
5
6
7
8
9
|
>>>l1 = [1, 2, 4, 1, 2, 5, 6, 8, 9]
>>>l1
[1, 2, 4, 1, 2, 5, 6, 8, 9]
>>>list(set(l1))
[1, 2, 4, 5, 6, 8, 9]
|
cs |
이와 같은 형태는 리스트를 set 형태로 변경합니다. set의 순서가 없습니다. 하지만, 숫자의 경우 자동 정렬을 합니다. 즉 다음과 같은 부분을 한번 살펴보겠습니다.
1
2
3
4
5
|
>>>l1 = [,1,2,3,1,2,5,6,8,9,3]
>>>set(l1)
{1,2,3,4,5,6,8,9}
|
cs |
이와 같이 set 자체가 숫자을 정렬하고, 중복된 숫자는 제거해줍니다. 이를 바탕으로 다시 리스트로 전환하여 위와 같이 중첩된 부분들을 제거할 수 있습니다.
그럼 문자의 경우도 한번 살펴보겠습니다. 간단히 다음 부분을 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
>>>t1=['a','b','c','a','b','d']
>>>t1
['a', 'b', 'c', 'a', 'b', 'd']
>>>set(t1)
{'c', 'd', 'a', 'b'}
>>>list(set(t1))
['c', 'd', 'a', 'b']
|
cs |
문자도 동일하게 다음과 같이 적용이 됩니다. 단 문자의 경우, 순서에 대한 정렬이 되지 않습니다. 이 부분에 대해서 다음과 같이 부분을 추가해 주시면 됩니다.
1
2
3
4
5
6
7
|
>>>t2=list(set(t1))
>>>t2.sorted()
>>>t2
['a', 'b', 'c', 'd']
|
cs |
생각보다 간단합니다. 하지만, 일부러 중복되는 부분이 존재하는 하는 경우도 있으니 사용시에 주의가 필요로 합니다. 리스트 관련된 부분을 찾다보면 많은 활용할 수 있는 부분이 있습니다. 예전에 올렸던 2개의 리스트 비교 방법등을 참조하시면 조금 더 도움이 되실거라 생각합니다.
오늘은 리스트(list)내에서 중첩된 맴버 제거하는 방법에 대해서 살펴봤습니다. 혹시 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다.
'Python > Python 응용' 카테고리의 다른 글
파이썬[Python] 팩토리얼(Factorial)연산 하기 및 관련 제약 사항 (0) | 2020.05.21 |
---|---|
파이썬[Python] 단어 첫 글자 대문자로 바꾸기/ 대소문자 바꾸기(upper,lower,capitalize) (0) | 2020.05.20 |
파이썬[Python] 문자열 템플릿(string Template) 활용하기 (0) | 2020.05.13 |
파이썬[Python] 폴더의 파일 목록 출력/특정 확장자 파일 목록 출력 (3) | 2020.05.12 |
파이썬[Python] 파일에서 특정 단어 포함여부, 특정 단어 찾기, 특정 단어 빈도수 확인하기 (7) | 2020.05.09 |