파이썬(python) – 리스트(List) 이해하고 활용하기 [두번째]

오늘 List 에 대해 마저 정리해보죠.
무슨 언어든 주구장창 시험해보고 직접 짜보고 그러는게 장땡입니다.

오늘 배울 것은 아래 3 가지입니다.

  • Value in List 구문 (내장구문)
  • List 객체의 멤버함수 사용 (List 를 다루는 함수들 사용)
  • List 의 요소(element) 삭제

(1) Value in List 구문

이 구문은 List 의 Element 중에서 Value 와 같은 것이 있는지를 검사하여 True/False 를 리턴합니다.

>>> a = [1,2,3]

# 2 가 List a 에 포함되어 있는지 검사
>>> 2 in a
True

# 포함되어 있으면 yes 를 찍도록
>>> if 2 in a: print 'yes'  
...
yes

# aaaa 문자열과 3 이 List a 에 포함되어 있는지 여부를 묶어 List b 만듬
>>> b = 'aaaa', 3 in a
>>> b
('aaaa', True)

# List b 의 첫번째 요소 리턴
>>> b[0]
'aaaa'

# List a 는 변함없음.
>>> a
[1, 2, 3]

(2) List 객체의 멤버함수 사용

List 는 string 처럼 객체라는 것을 이해해야 합니다. 객체는 자신만이 가지고 있는 데이터 멤버를 가지고 있고, 해당 데이터 멤버들을 다룰 수 있는 멤버 함수들을 제공합니다.
우리는 전에 배운대로 dir 을 이용하여 해당 데이터 멤버 및 멤버함수의 리스트를 볼 수 있고, help 를 통해 그에 대한 사용법을 확인할 수 있습니다.

# List a 를 만듬
>>> a = [1,2,3,4]          

# a 객체의 데이터멤버 및 함수 리스트를 확인
>>> dir(a)                   

['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

# 함수 중 pop 함수의 사용법 확인
>>> help(a.pop)          

# 첫번째 element 를 pop
>>> a.pop(0)
1

# 1 이 없어졌음을 확인
>>> a                         
[2, 3, 4]

# List a 에 숫자 5 를 element 로 마지막에 추가
>>> a.append(5)          
>>> a
[2, 3, 4, 5]

# List a 에 숫자 1 을 마지막 element 로 추가
>>> a.append(1)          

# sorting 은 안된 채 그대로 append 되어 있음
>>> a                         
[2, 3, 4, 5, 1]

# a 객체가 지원하는 sort 함수 사용법 확인
>>> help(a.sort)           
>>> a.sort
<built-in method sort of list object at 0x1619d88>

# List a 를 sorting 하여 다시 a 에 넣어둠
>>> a.sort()                 
>>> a
[1, 2, 3, 4, 5]

# 역으로 sorting 함
>>> a.sort(reverse=True)  
>>> a
[5, 4, 3, 2, 1]

(3) List 의 Element 삭제

List 에서 특정 요소를 삭제할 때는 내장명령어인 del 을 사용합니다.

>>> a = [1,2,3]

# List a 에서 두번째 요소 삭제
>>> del a[1]

del 명령어는 변수를 통째로 삭제할 때도 사용할 수 있습니다.

>>> a = [1,2,3]

# b 가 a 와 같은 List 객체 영역을 가리키도록 할당 (포인터)
>>> b = a                    

# a 포인터를 삭제할 뿐임
>>> del a                    

# 객체 자체는 살아있고 b 포인터도 살아있으므로 잘 보임
>>> b
[1, 2, 3]

# a 포인터변수는 없어졌음.
>>> a                          
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

# 다시 b 를 a 에 할당
>>> a = b                     
>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

# 이번에는 b 를 삭제
>>> del b                    

# 역시 포인터변수 a 가 가리키는 List 객체는 그대로 살아있음.
>>> a
[1, 2, 3]

어때요 ? 참 다루기 쉽죠 ?
다음 시간에는 List Sorting 에 대해 좀더 심층적으로 알아보겠습니다.

You may also like...

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x