본문 바로가기

Python/Python 기초

리스트 (list) 와 문자열의 메서드

리스트(list)는 다른 여러 개의 값을 포함한다.


리스트를 쓰면 여러 개의 다른 값을 하나의 변수에 저장할 수 있다.


리스트 안의 각각의 값은 아이템이라고 한다.


animals = ['python', 'skunk', 'lizard']


리스트에서 각 아이템에 접근하기 위해서는 [] (대괄호)를 써야 한다.


대괄호 안의 숫자는 인덱스[0] 라고 한다,


파이썬에서 첫 번째 아이템의 인덱스는 1이 아니고 0이다.


리스트를 사용하지 많으면 문자열을 그룹 지을 때 매우 힘들다.


아이템이 수백 개나 수천 개가 있고 다른 문자열을 저장한다고 해보자


[]를 쓰면 리스트의 아이템을 변수처럼 다룰 수 있다.





리스트 아이템의 값을 인덱스 대입으로 바꾸기

animals = ['python', 'skunk', 'lizard']

animals[1] = 'dragon'



리스트 결합

[1, 2 ,3, 4] + ['apples', 'oranges'] + ['Alice', 'Bob']

리스트가 반드시 같은 데이터 타입의 값만 가져야 하는 것은 아니다. 위의 예처럼 리스트 안에 정수도 넣고 문자열도 넣을 수 있다.

리스트를 연결할 때는 반드시 리스트 끼리만 연결해야 한다. ['apples'] + 'orange' 라고 하면 리스트와 문자열을 합치고 있기

때문에 에러가 발생한다.




in 연산자.

animals = ['python', 'skunk', 'lizard']

'skunk' in animals

'안녕' in '나는 안녕이라 말했다'


in 연산자를 쓰면 어떤 값이 리스트 안에 있는지 없는지 쉽게 알 수 있다.

in 연산자를 쓴 표현식은 블리언 값을 반환하는데, 어떤 리 값이 리스트 안에 들어 있으면 True를 반환하고

그렇지 않으면 False를 반환한다.

또한 in 연산자는 리스트 뿐만 아니라 문자열에서도 쓸 수 있다.



del 로 리스트의 아이템 지우기

spam = [2, 4, 6, 8, 10]

del spam[1]


del로 리스트에서 아이템을 작제할 수 있다. del은 함수나 연산자가 아니라 구문이다.

따라서 값을 반환하지 않는다.



리스트의 리스트


groceries = ['eggs', 'milk', 'soup', 'apples', 'bread']
chores = ['clean', 'mow the lawn', 'go grocery shopping']
favoritePies = ['apple', 'frumbleverry']
listOfLists = [groceries, chores, favoritePies]


listOfLists[1][2]


리스sms 리스트 안에 아이템으로 여러 가지 값을 가질 수 있다.

이 아이템이 리스트가 될 수 있다.

리스트의 리스트에서 아이템을 얻어 오려면 [](대괄호)를 2개 써야한다.





메서드


메서드(method)는 함수와 비슷하지만, 항상 값에 붙어 있다. 

예를 들어 모든 문자열 값은 lower() 메소드를 가지는데 이것은 문자열을 소문자로 만들어서 반환한다.

그냥 lower()만 호출할 수 없고, lower() 에 lower('Hello')처럼 문자열 인자를 넘겨줄 수도 없다.

특정 문자열 다음에 마침표를 쓰고 메소드 이름을 붙여야 한다.




lower()와 upper() 문자열 메서드


'Hello world'.lower() # 소문자로 'hello world'

'Hello world'.upper() # 대문자로 'HELLO WORLD'



reverse() 와 append() 리스트 메서드


리스트 데이터 타입도 메서드가 있다 reverse() 메서드는 리스트의 아이템 순서는 뒤집는다.

append() 메서는 인자로 받은 값을 리스트 맨 뒤에 붙여 준다.



문자열과 리스트는 메서드가 있지만 정수 데이터 타입은 메서드가 없다.


메서드와 함수의 차이


왜 파이썬에 함수와 비슷한 메서드가 또 있어야 할까?

어떤 데이터 타입은 메서드가 있다. 메서드는 데이터 타입과 연관된 함수다.

메서드를 가지고 있는 데이터 타입의 값을 객체(object)라고 한다.






split() 리스트 메서드

slplt() 메서드는 기다란  문자열을 리스트로 바꾸며 단어 하나 하나 모두 리스트의 아이템이 된다.





sort() 리스트 메서드

리스트를 알파벳과 숫자 순서로 정렬해 준다.

1
2
3
4
>>> spam = ['5', 'bat', '3', '1', '4', 'cat', '2', 'ape']
>>> spam.sort()
>>> spam
['1', '2', '3', '4', '5', 'ape', 'bat', 'cat']




join() 문자열 메서드

join(0 문자열 메서드는 리스트 인자를 합친 문자열을 반환한다.

 아이템 사에에 문자열이 들어가게 된다.

1
2
3
4
5
6
7
['1', '2', '3', '4', '5', 'ape', 'bat', 'cat']
>>> 'x'.join(['hello', 'world'])
'helloxworld'
>>> 'ABCDEF'.join(['x','y','z'])
'xABCDEFyABCDEFz'
>>> ' '.join(['My', 'name', 'is', 'Zophie'])
'My name is Zophie'

join() 문자열 메서드는 split() 문자열 메서드와 반대된다. split()은 문자열을 나눠서 리스트를 반환하고,

join()은 리스트를 합해서 문자열로 만들어 반환한다.








리스트는 문자열보다 더 강력하다

"거미의 다리와 개구리의 발가락, 도롱뇽의 눈, 박쥐 날개, 달팽이 버터, 뱀 비듬"은

(여러분이 마법사가 아니라면) 일반적인 쇼핑 목록이 아니다.

하지만 문자열과 리스트 사이의 차이에 대한 다음의 첫 번째 예제에서는

이 쇼핑 목록을 사용할 것이다.


우리는 다음과 같은 문자열을 이용하여 wizard_list 변수에 항목들의 목록을 저장한다.

>>> wizard_list = 'spider legs, toe of frog, eye of newt, bat wing, slug butter, snake dandruff'
>>> print(wizard_list)
spider legs, toe of frog, eye of newt, bat wing, slug butter, snake dandruff


하지만 우리는 우리가 조작할 ㅜ

'Python > Python 기초' 카테고리의 다른 글

다중 대입 (Multiple assignment)  (0) 2014.09.24
딕셔너리 (dictionart), 맵(map)  (0) 2014.09.24
파이썬의 상수와 관행  (0) 2014.09.18
다중 라인 문자열  (0) 2014.09.18
예제 모음  (0) 2014.09.13