기타 강좌

5. 리스트(list)

 

 

 

안녕하세요~ 여러분~

 

오늘도 여러분과 함께 파이썬 놀이하러 왔습니다.

 

저도 엊그제까지만 해도 파이썬에 대해 아무 것도 몰랐답니다~ㅎ

 

무식하면 용감하다고 저도 공부해 가면서 용감하게 글을 쓰고 있습니다. ^^;

 

오늘은 저희 가족 이야기를 해보겠습니다~

 

저희 식구는 네 명이었습니다. 아버지, 어머니, 저, 동생.

 

대왕[대빵](?)은 아버지, 그 다음은 어머니시지요.

 

그러니까 저는 넘버 쓰리였던 것이었습니다… 으흐흐…

 

파이썬에서는 저희 가족을 이렇게 표현할 수 있답니다.

 

>>> family = ['father', 'mother', 'I', 'sister']

 

이게 리스트 라는 겁니다. 뭐.. C언어 하시는 분들은 아시겟지만... 배열같은거?죠.

 

저희 가족에는 아버지, 어머니, 저, 동생이 있다는 것을 이렇게 쓰는 것이지요.

 

이해가 갑니까? 됍니까? [-ㅡ-]ㅎㅎ

 

, 그냥 동생이라고 했는데 실은 여동생입니다. 침 닦으십쇼. --#

 

그럼, 컴터한테 저희 가족이 몇 명인지 물어보겠습니다.

 

>>> len( family )

4

 

len( ) 이라고 쓰면 리스트에 몇 개가 들어 있는지를 보여줍니다.

 

저희 가족을 family라는 리스트로 표현했으니까 4라고 대답을 하는 겁니다.

 

리스트(list)는 우리말로 목록이란 뜻이죠?

 

말 그대로 여러 개의 자료를 묶은 것을 말하구요, 위에서 보신 것처럼 각괄호([])랑 쉼표를 써서 표현하시면 됩니다.

 

그럼 저희 가족 중에 넘버 쓰리가 누구인지 물어볼까요?

 

아래와 같이 쓰고 <Enter>를 살짝 눌러주세요.

 

>>> family[3]

 

답이 뭐라고 나오죠? 당근 I라고 나오겠죠?

 

3번째 요소가 "I"이니 까요...^^

 

그러나! 이상하게도 파이썬은 sister라고 대답을 합니다.

 

왜 그런 걸까요?

 

그 이유는 리스트의 첫번째 자리를 차고앉은 ‘father 1번이 아니라 0번이기 때문입니다.

1이 아니라 0일까요? 그건 저도 잘 모릅니다.--;

 

그런데 파이썬 말고 다른 프로그래밍 언어에서도 여러 개를 묶어두었을 땐 번호를 0번부터 붙여주더군요.

 

그렇다면 저는 몇 번일까요?

 

father 0이고, mother 1이니까 저는 2겠군요.

 

맞는지 확인을 해봐야죠?

 

>>> family[2]

'I'

 

제가 넘버투가 되어버린 감격스러운 순간입니다!!!

 

기뻐해 주십시오, 여러분~. [캬캬캬캬캬... -_-;;]

 

하지만 그 기쁨도 잠시, 저의 머리가 5400rpm으로 회전하기 시작했습니다.

 

(rpm은 1분에 몇 바퀴를 도는지 나타내는 단위입니다. 컴퓨터의 하드디스크가 5400rpm으로 돌지요.)

 

저는 넘버 투에 만족할 놈이 아니기 때문입니다.

 

머리를 한참 굴리던 저는 넘버 0이 될 수 있는 방법을 찾아내었습니다.

 

무슨 방법이냐구요? 결혼이라는 고단수의 방법입니다.

 

저는 더 이상 올라갈 수 없는 가족에서 독립하여 새로운 가정을 꾸린 다음, 거기서 왕초 노릇을 하기로 했지요 [우히히;;]

 

우선 가족에서 제 이름을 뺍니다.

 

>>> family.remove('I')

 

remove는 뭔가를 제거한다는 뜻을 갖고 있죠. 위의 문장은 family에서 I라는 놈을 없애라는 말입니다.

 

그럼 제가 확실히 없어졌는지 확인을 해보겠습니다.

 

>>> family

['father', 'mother', 'sister']

 

, 제가 확실히 제거되었군요.....

 

.........제거됐네요 ㅡㅡ;; 왠지 쓸쓸한... ㅠㅠ

 

 휴.... 강좌는 여기까지 입니다... ^^ 강좌읽어주시는 분들 감사합니다...^^

 

그럼... 복습도 해보시고~ 열심히 하세요~~~ ^^

TAG •
Comment '4'
  • ?
    칼리아 2009.09.12 10:36
    오~
  • ?
    Last H 2009.10.08 00:45

    배열의 번호 이를 인덱스라고 하는데요.

    인덱스가 0부터 시작인 이유는 간단히 말하자면 얼만큼 떨어져 있는가를 표현하기 때문입니다.

    family라는 배열 이름은 사실 일반적인 변수로 받아 줄 수 없는 주소값입니다. (포인터를 아신다면 쉽게 이해 하실듯)

    쉽게 말해 family 라는 리스트에는 father가 있으니 그 자리이죠. 반면 mother는 family로 부터 한 메모리byte만큼(자료형에 따라 다름)

    떨어진 자리에 있기때문에 family[1]이 되는겁니다.

    family로 부터의 거리라고 생각하시면 이해하기 쉬울 겁니다.

  • ?
    - 하늘 - 2009.10.09 19:27

    C언어 하시나 봐요~ ^^

     

    근데 파이썬은 좋은게 파이썬도 없고 직접 자료형을 지정해 주지 않아도되요... ㅎㅎ

     

    일체 스크립트이기 떄문에... ㅎㅎ

  • ?
    Last H 2009.10.08 01:08

    위의 내용은 쓰다보니 이유라고 하기엔 명확하지 않은 것 같아서 추가로 글을 달겠습니다.

    다양한 이유가 있는데요.

    일단 컴퓨터가 쓰는 언어가 언젠가 강좌에 나온것 처럼 bit단위 이기 때문에 0 과 1로 이루어져 있기 때문입니다.

    저걸 1부터 쓴다면 매번 리스트를 쓸 때 마다 1비트씩 누수가 생기지요.

    안그래도 한 2차원 배열쯤 가면 메모리 낭비가 아주 줄줄 세는데(보통의 경우) 그걸 조금이라도 줄일 수도 있고요.

     

    일반 퍼스널 pc의 경우 요새는 정말 메모리가 2G ,3G하는 식으로 넘처 나지만 C언어가 생겼을땐 메모리에 여유가 그리 많지 않았죠.

    게다가 pc의 범주를 벗어나 임베디드계열이나 펌웨어 (제가 전공하는 부분입니다. 2계열) 의 경우에는 메모리를 최대한 아껴야 합니다.

    줄이고 줄이고 줄여야만 요새 흔히 쓰는 전자 장비들이 탄생하는 겁니다.

    거기에 더해 펌웨어계열 쪽은 회로와도 관련이 있기에 전기가 통하느냐 안통하느냐 두가지라서 0부터 시작하는게 뭐든지 더 편하게 되죠.

    일반 어플리케이션 프로그래밍에서도 포인터좀 다루다 보면 만약 배열이 1부터 시작한다면 굉장히 번거로울 겁니다.


List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
기타 파이썬 총 강좌파일 올립니다... 3 file - 하늘 - 2009.09.10 7007
기타 [파이썬] if(만약 …이면) )8( 3 - 하늘 - 2009.09.10 2494
기타 [파이썬] while문 제어구조 알아보기)7( 1 - 하늘 - 2009.09.08 2806
기타 [파이썬] 인터프리터(interpreter) )6( - 하늘 - 2009.09.07 2348
기타 [파이썬] 리스트(list) )5( 4 - 하늘 - 2009.09.07 3140
기타 [파이썬] 변수(변하는 수) )4( 4 - 하늘 - 2009.09.06 2559
기타 [파이썬] 파이썬 시작하기 )3( 2 file - 하늘 - 2009.09.05 2573
기타 [파이썬] 파이썬 설치하기 )2( 1 - 하늘 - 2009.09.05 2594
기타 [파이썬] 파이썬을 배우자 )1( 6 - 하늘 - 2009.09.05 2730
기타 - 하늘 -의 리눅스 book! [ <3>리눅스의 기초!] 1 file - 하늘 - 2009.08.03 2161
기타 해커스쿨 F.T.Z서버에 대해 궁금하신 분들은 글올려주세요... - 하늘 - 2009.08.03 3428
기타 - 하늘 -의 리눅스 book! [ <2>리눅스를 배우려면?][수정] 8 file - 하늘 - 2009.08.01 3357
기타 - 하늘 -의 리눅스 book! [ <1>리눅스를 배우기전에... ][수정] 5 - 하늘 - 2009.08.01 2145
기타 - 하늘 -의 리눅스 book! 리눅스를 배워보자! 5 - 하늘 - 2009.08.01 2515
기타 게임줄거리를 만들어볼까?!! 6 칼리아 2009.08.01 2522
기타 그림판으로 아이콘 만들기 4 검은별 2009.07.13 3395
XpressEngine 게시물의 추천/비추천 기능 추가하기 1 아방스 2009.07.09 4895
기타 아방스 분들 사과드립니다.... 12 제네시스& 2009.06.27 2307
C언어 제니스가 올린 글 출처 알았네요.... 2 제네시스& 2009.06.27 2383
C언어 알았습니다..그럼 게시물은 다 삭제해버리겠습니다.. 8 제니스 2009.06.16 2278
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19