2020년 5월 25일 월요일

파이썬 list 구조체에 대한 추가적인 연산 - '+', insert, extend, remove

파이썬 list 구조체에 대한 멤버 추가나 삭제에 대한 또다른 방법들이 많네요.

이전에는 단순히 list의 마지막에 추가하거나 특정 위치의 멤버 삭제 방법만 알았는데요.

특정 위치에 삽입하는 방법도 있네요

list1 = [1, 2, 3]
print("List1은 ", list1)
list1.insert(1, 'A')
print("List1은 ", list1)


위의 소스는 인덱스 1의 위치에 'A'라는 새 멤버를 삽입하면서 추가하는 방법입니다. 실행결과는 아래에 있습니다.

List1은  [1, 2, 3]
List1은  [1, 'A', 2, 3]


'+' 연산자를 사용해서 append 효과를 낼 수 있는 방법도 있네요. list1과 list2를 합치는 코드입니다.

list1 = [1, 2, 3]
list2 = ['A', 'B', 'C']
list3 = list1 + list2
print("List1은 ", list1)
print("List2은 ", list2)
print("List3은 ", list3)


실행결과는 아래에 나와 있습니다.

List1은  [1, 2, 3]
List2은  ['A', 'B', 'C']
List3은  [1, 2, 3, 'A', 'B', 'C']


'+=' 연산자로 간단히 코드를 작성할 수도 있네요

list3 += ['가', '나']
print("List3은 ", list3)


실행결과는 아래에 나와 있습니다.

List3은  [1, 2, 3, 'A', 'B', 'C', '가', '나']

extend를 사용해서 list 구조체의 멤버들을 확장할 수 있네요

list1 = [1, 2, 3]
print("List1은 ", list1)
list1.extend(['A', 'B', 'C'])
print("List1은 ", list1)


위의 코드 실행결과는 아래와 같습니다.

List1은  [1, 2, 3]
List1은  [1, 2, 3, 'A', 'B', 'C']


이전 del과 달리 삭제할 값과 일치하는 멤버를 찾아서 삭제하는 방법도 있는데요.

list1 = ['A', 'B', 'C']
print("list1은 ", list1)
list1.remove('A')
print("list1은 ", list1)


이 방법은 아주 유용할거 같네요. 'A'와 일치하는 멤버만 삭제되었네요.

list1은  ['A', 'B', 'C']
list1은  ['B', 'C']


만약 아래와 같이 'A'가 2개가 있을 경우에는 어떨까요?

list1 = ['A', 'B', 'C', 'A']
print("\nlist1은 ", list1)
list1.remove('A')
print("\nlist1은 ", list1)


실제 실행해보니 첫번째 'A'만 하나 삭제되는군요.

list1은  ['A', 'B', 'C', 'A']
list1은  ['B', 'C', 'A']

댓글 없음:

댓글 쓰기