본문 바로가기
Language/Python

[Python] 리스트 (2) / 추가, 수정, 삭제, 병합, 인덱스, 중복 제거/ 예제로 공부하는 Python 100 문제풀이

by 애기 개발자 2022. 2. 9.
반응형

1. 리스트 추가, 수정, 삭제

1-1 추가

추가는 append( )를 사용해서 추가한다.

 

append( )는 사용시 항상 해당 리스트의 맨 뒤에 추가가 된다.

 

eng_scores = [90, 60, 70, 100, 85]

#추가 -> append() 사용 (맨 뒤에 추가)
eng_scores.append(99)

print("추가 - ", eng_scores)
'''
추가 -  [90, 60, 70, 100, 85, 99]
'''

1-2 수정

수정은 간단하다. 해당 리스트의 인덱스 번호를 이용하여 바꾸고 싶은 위치의 값을 다시 설정해주면 된다.

 

#수정 -> index 사용
eng_scores[-1] = 38
print("수정 - ", eng_scores)
'''
수정 -  [90, 60, 70, 100, 85, 38]
'''

위의 추가된 eng_scores는 [90, 60, 70, 100, 85, 99] 로 구성되어있고 

 

eng_scores[-1]로 마지막 인덱스를 호출하여 99 -> 38 로 수정하였다.

 

1-3 삭제

삭제는 del 과 삭제하고자 하는 인덱스를 사용하여 삭제한다.

 

#삭제 -> del과 index 사용
del eng_scores[-1]
print("삭제 - ", eng_scores)
'''
삭제 -  [90, 60, 70, 100, 85]
'''

del eng_scores[-1]을 선언하여 가장 마지막 인덱스인 38이 삭제된 것을 볼 수 있다.

 

 

Git - 12 리스트 추가, 수정, 삭제.py

 

2. 리스트 병합

2개 이상의 리스트를 추가하는 방법은 '+' 와 '*' 연산자를 사용한다.

 

a = [0, 1, 2, 3, 4]
b = [5, 6, 7, 8, 9]

#병합 -> + 사용
print(a+b)
'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
'''
#리스트 * 숫자 가능
print(a*2)
'''
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
'''

#리스트 튜플은 병합 가능, 집합은 병합 불가능

각 리스트를 합쳐 하나의 리스트로 표현하고자 할때는 '+'를 사용한다.

 

a+b 를 하여 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 가 출력되는 것을 알 수 있다.

 

'*' 연산자를 사용 할 경우 사용하고자 하는 리스트와 그 뒤에 반복횟수를 정수로 적어주면 된다.

 

a*2를 하여 [0, 1, 2, 3, 4, 0, 1, 2, 3, 4] 로 a가 2번 연달아서 출력되는것을 볼 수 있다.

 

만약 a*3을 한다면 [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4로 출력된다.

 

주의할점이 리스트와 튜플은 위의 방법으로 병합이 가능하나, 집합(set)은 병합이 불가능하다.

 

Git - 13 리스트 병합.py

 

3. 리스트 인덱스 검색

다른 언어들 같은 경우에는 배열에서 해당 값이 몇 번째 인덱스에 위치하고있는지 찾기위해 반복문을 돌리거나 하였으나 파이썬에는 해당 값이 몇 번째 인덱스에 위치하고있는지 리턴시켜주는 기능이 있다.

 

index( )를 사용하여 괄호 안에 찾고자 하는 값을 적으면 해당 값의 위치를 리턴해준다.

 

animals = ['elephant', 'hippo', 'lion', 'tiger', 'alligator']

ani_name = input('케이지를 알고 싶은 동물의 이름을 입력해주세요 = ')

ani_index = animals.index(ani_name)
#index()를 쓰면 해당 값에 해당하는 index 번호 리턴

print(f'{ani_name} 동물의 케이지는 {ani_index}번 위치에 있습니다.')
'''
케이지를 알고 싶은 동물의 이름을 입력해주세요 = lion
lion 동물의 케이지는 2번 위치에 있습니다.
'''

위의 코드는 animals 라는 리스트에서 ani_name을 input( )으로 받고

 

ani_index = animals.index(ani_name)을 사용하여 

 

해당 ani_name이 animals에서 몇 번째 인덱스에 위치해 있는지 리턴해준다.

 

Git - 14 동물, 리스트, 인덱스, 검색.py

 

4. 리스트 중복 제거

우리는 중복으로 값을 가질 수 없는 기능을 알고있다. 바로 집합(set)이다.

 

lst = ['dog', 'hippo', 'elephant', 'lion', 'alligator', 'hippo', 'lion']

#set() 을 활용

tmp = list(set(lst))
print(tmp)
'''
['dog', 'lion', 'hippo', 'alligator', 'elephant']
집합은 요소가 순서없이 정렬된다.
'''

lst로 중복된 값이 포함된 리스트를 선언해 주었다.

 

위의 리스트에선 hippo, lion이 중복 요소이다.

 

이를 set(lst) 하여 리스트 -> 집합으로 변경 시켜주었고

 

이를 다시 list(set(lst))로 집합 -> 리스트로 변경하였다.

 

그리고  print(tmp)로 출력한 결과 lst를 선언할때와 순서가 다른것을 알 수 있는데

 

set( )을 사용하면 실행할 때마다 순서가 무작위로 정렬되기 때문이다.

 

 

* 주의할점

 

집합은 인덱스를 이용한 출력시 에러가 발생한다.

 

#에러나는 상황
a = ['dog', 'hippo', 'elephant', 'lion', 'tiger', 'alligator', 'hippo', 'lion']
print(a[3]) #lion 출력

b = set(a)

#print(b[3]) # 에러 발생

마지막줄의 주석 처리된 print(b[3])을 실행 할 경우 에러가 발생한다.

 

Git - 15 리스트 중복 제거.py

반응형

댓글