기타 강좌

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
기타 PHP 2강. 내가누구 2012.02.24 1993
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Clean Download Buttons Pack file 아방스 2011.12.07 1992
XpressEngine 2011.11.05 XE Camp - XE를 활용한 웹 사이트 구축 아방스 2011.11.07 1989
기타 동영상에서 원하는 부분만 잘리서 편집하기 아방스 2010.11.05 1986
C언어 [ - Zennys -] 제니스의 C언어 강좌 [ 프로그램의 구조 ] -Zennys- 2009.06.13 1984
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [컴파일러] 4 -Zennys- 2009.06.13 1980
XpressEngine 2011.11.05 XE Camp - XE 스킨 제작 가이드 아방스 2011.11.07 1976
기타 3D MAX 2008 - subdivison 모델링 1 아방스 2009.05.28 1975
C언어 스릴 쇼크 서스펜스!!!!!!!! 정체불명 2009.05.01 1967
시네마4D Navié Plants & Effex Krakatoa Edition v2.00.20 For Cinema 4D R14 – R15 – Win64 file 아방스 2013.09.24 1951
C언어 [비쥬얼 C++ 동영상 강좌] 12회 그림 텍스트 리스트 CListCtrl 클래스 아방스 2009.01.12 1883
C언어 [ - Zennys - ] 제니스의 C언어 강좌 [printf함수] file -Zennys- 2009.06.13 1878
C언어 [ - Zennys -] C언어의 기초 ... 8 file - Zennys - 2009.06.08 1861
게임 업로드 방법 아방스 2009.01.06 1857
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - 36 Web Buttons Collection file 아방스 2011.12.07 1856
C언어 [비쥬얼 C++ 동영상 강좌] 11회 Application Rc & 클래스 위자드 배우기 1 아방스 2009.01.12 1847
어도비 프리미어 [프리미어 프로] 영상 회전시키기 (거꾸로 촬영된경우) 아방스 2017.08.01 1835
C언어 [비쥬얼 C++ 동영상 강좌] 09회 화면을 마음대로 만들기 1 아방스 2009.01.12 1826
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - Check It Out Button file 아방스 2011.12.07 1815
웹디자인 관련 웹 디자인 무료 버튼 템플릿! - 3D Buttons file 아방스 2011.12.07 1791
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19