기타 강좌

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
Vegas Pro [베가스14 강좌] 매드무비 제작시 스킬창 확대 방법 아방스 2017.08.01 100
Vegas Pro [베가스 프로 15] 트라이얼 버전 설치 방법 아방스 2017.09.06 1312
Vegas Pro [베가스 프로 15] 추가된 새로운 기능 "픽처 인 픽처" 아방스 2017.09.27 274
Vegas Pro [베가스 프로 15] 10분 안에 기본편집부터 출력까지 배워봅시다. 아방스 2017.09.28 391
메이킹 영상 [메이킹] 드래곤 길들이기2 메이킹 영상 아방스 2014.07.09 1258
메이킹 영상 [매이킹 영상] CASTLEVANIA: LORDS OF SHADOW 2 아방스 2014.07.09 790
기타 [루비][네트워크][GUI] 서버에 명령어 보내서 실행결과 얻는 클라이언트 file 자연철학의수학적원리 2013.10.25 1471
기타 [루비][네트워크] 다른 컴퓨터에서 명령어 받아서 실행후 결과 돌려주는 서버 자연철학의수학적원리 2013.10.25 1736
기타 [루비][네트워크] 간단한 서버테스트하기 file 자연철학의수학적원리 2013.10.25 1419
기타 [루비][네트워크] 간단한 서버 만들기 자연철학의수학적원리 2013.10.25 1510
기타 [루비][GUI]텍스트입력상자 만들기 자연철학의수학적원리 2013.10.25 1345
기타 [루비][GUI]윈도우 창을띄우기 file 자연철학의수학적원리 2013.10.25 2070
기타 [루비][GUI] 텍스트입력박스와 버튼, 이벤트 연결 file 자연철학의수학적원리 2013.10.25 1432
기타 [루비][GUI] 버튼에 이벤트 연결하기 file 자연철학의수학적원리 2013.10.25 1370
기타 [루비][GUI] 버튼 만들기 file 자연철학의수학적원리 2013.10.25 1432
기타 [루비] 한글 사용하기 2 자연철학의수학적원리 2013.10.25 1469
기타 [루비] 프로그래밍 공부하는 법 1 자연철학의수학적원리 2013.10.25 1724
시네마4D [나무 의자 만들기] Model A Wooden Chair In Cinema4D 1 file 아방스 2011.04.18 3404
기타 [꿈꾸는소년의 스토리강좌]RPG의 형식과 스토리 관계(4):ORPG 3 file 꿈꾸는소년 2008.03.27 2208
기타 [꿈꾸는소년의 스토리강좌]RPG의 형식과 스토리 관계(3):SRPG 6 file 꿈꾸는소년 2008.03.14 2603
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19