자료구조 - 문자열과 리스트

문자열에서는 요런 식으로 한 글자마다 번호를 매긴답니다. 문자열을 만들어서 이것저것 시켜보세요.



>>> x = 'banana'

>>> x[0] # 0번 글자는?

'b'

>>> x[2:4] # 2번부터 4번 앞(3번)까지는?

'na'

>>> x[:3] # 처음부터 3번 앞(2번)까지는?

'ban'

>>> x[3:] # 3번부터 끝까지는?

'ana'



그렇다면 banana를 nanana로 바꿀 수는 있을까요?

>>> x[0] = 'n'

요렇게 해보면…

된다구요? 안됩니다. 문자열에 들어있는 글자는 바꿀 수가 없답니다.



그래도 꼭 바꾸고 싶다면 이렇게 할 수는 있죠.

>>> x = 'n' + x[1:]

>>> x

'nanana'

이 방법은 b를 n으로 바꾼 것이 아니고 ‘n’과 ‘anana’을 합쳐서 문자열 x에 새로 넣어준 것입니다.



이번엔 리스트를 살펴보도록 하겠습니다.

원소를 추가하는 것부터 해볼까요?

>>> prime = [2, 3, 7, 11] # 2, 3, 7, 11을 원소로 갖는 리스트 prime을 만듦

>>> prime.append( 5 ) # prime에 원소 5를 추가

>>> prime

[2, 3, 7, 11, 5]



sort 함수를 사용하면 정렬을 간단하게 할 수 있구요.

>>> prime.sort() # prime을 원소 크기 순으로 정렬

>>> prime

[2, 3, 5, 7, 11]



원소를 삭제하는 것도 되지요. 리스트도 문자열처럼 0번부터 번호를 매기는 거 아시죠?

>>> del prime[4] # prime의 4번 원소를 삭제

>>> prime

[2, 3, 5, 7]



그리고 문자열과는 달리 원소를 바로 바꿔줄 수도 있습니다.

>>> prime[0] = 1

>>> prime

[1, 3, 5, 7]



리스트 속에 리스트를 집어넣을 수도 있지요.

피자가게에서 음식을 주문하는 것을 리스트로 만들어 볼까요?

>>> orders = ['potato', ['pizza', 'Coke', 'salad'], 'hamburger']

>>> orders[1]

['pizza', 'Coke', 'salad']

>>> orders[1][2]

'salad'



마찬가지로 리스트를 사용해서 간단히 행렬을 표현할 수도 있습니다. 행렬은 아마 고등학교 때 배우죠?

>>> matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]



지금까지 문자열과 리스트를 따로따로 알아봤는데요, 이번엔 둘 다 갖고 놀아봅시다.

문자열을 리스트로 바꿔보도록 하죠.

>>> list=[]

>>> string = 'Be happy!'

>>> for x in string:

... list.append(x)

...

>>> print list

['B', 'e', ' ', 'h', 'a', 'p', 'p', 'y', '!']

처음에 list라는 변수를 만들었는데, 그 값에는 아무 원소도 없는 리스트를 넣어줬습니다.

그리고, string이라는 변수를 만들어서 ‘Be happy!’라는 문자열을 넣어줬죠.

전에 for 문을 배울 때 리스트를 이용해서 반복을 한다고 했는데, 이번엔 문자열을 이용했습니다. 여기선 string의 글자 개수만큼 반복하게 되죠.

string의 첫번째 글자를 list의 첫번째 원소로 넣고, string의 두번째 글자를 list의 두번째 원소로 넣고, 그런 식입니다.



오늘의 종합편! 우리 반 성적표를 만들어 봅시다!

학생 이름에 국, 영, 수 성적을 넣어주고,

>>> chulsu = [90, 85, 70]

>>> yunghui = [88, 79, 92]

>>> yong = [100, 100, 100] # 바로 접니당...

>>> minsu = [90, 60, 70 ]



우리 반 학생들을 전부 ban이라는 리스트에 넣어줍니다.

>>> ban = [chulsu, yunghui, yong, minsu]



성적들이 어떤지 불러내볼까요?

>>> for person in ban:

... print person

...

[90, 85, 70]

[88, 79, 92]

[100, 100, 100]

[90, 60, 70]



개인의 성적을 더해서 총점, 평균도 내 보세요.

>>> for person in ban:

... total = 0

... for score in person:

... total = total + score

... ave = total / 3

... print person, total, ave

...

[90, 85, 70] 245 81

[88, 79, 92] 259 86

[100, 100, 100] 300 100

[90, 60, 70] 220 73
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2008/05/27 11:44 2008/05/27 11:44
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/3303

Trackback URL : http://tcbs17.cafe24.com/tc/trackback/3303

« Previous : 1 : ... 3126 : 3127 : 3128 : 3129 : 3130 : 3131 : 3132 : 3133 : 3134 : ... 6391 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/11   »
          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
Statistics Graph

Site Stats

Total hits:
237796
Today:
913
Yesterday:
1352