본문 바로가기

코딩 이야기/프로그래밍 언어 이야기

짱 쉬운 파이썬 강좌 #3 리스트

반응형

서론

 

드디어 시험이 끝났다. 히히. 근데 사실 생각해보면 시험기간 중에 블로그를 열심히 썻어도 점수가 바뀌거나 하진 않았을 것 같다. 워낙 딴 짓도 많이해서... 아무튼 오늘은 리스트에 다뤄볼까한다. 변수 다음에 제어문을 써야할 지, 아님 자료형에 대해 더 써야할 지 고민하다가 리스트를 해두는게 반복문이나 제어문과 연계해서 익히기 더 좋을 것 같아서 리스트를 먼저 배우도록 하겠다.

 

https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Python-logo-notext.svg/600px-Python-logo-notext.svg.png

 

목차

  1. 리스트... ㄱ.그게 뭐노

  2. 사용하며 익히기

    1. append 값 추가하기

    2. del 값 제거하기

    3. sum 리스트 총합 구하기

    4. sorted 리스트 원소 정렬하기

    5. 리스트 값 변경하기

리스트... ㄱ.그게 뭐노

 

리스트는 원소(변수)가 연속적으로 저장되는 자료형이라 보면 편하다. c언어에는 배열이라고 비슷한 개념이 있는데, 차이점이라면 배열은 자료형을 무조건 하나로 통합해야된다는 단점이 있다면, 파이썬은 원소마다 자료형을 다르게 해줄 수 있다.

 

a = [123, "시간의 바깥"]
print(a)

이렇게 입력을 하면 다음과 같은 결과가 출력된다.

[123, '시간의 바깥']

리스트는 [] 안에 쉼표를 통해 원소끼리 구분을 지으며 여러 값을 하나에 리스트 안에 저장할 수 있다.

그러면 이 글을 읽던 사람들은 이렇게 생각할 수 있다. "아니 그러면 a = 123 b = "시간의 바깥" 이렇게 입력하고 2개 출력해도 문제 없는 거 아님?"

물론 맞는 말이다. 하지만 a = 123 b = "시간의 바깥" c = "사과" d = 3333 e = 5664 ..... 이렇게 변수가 많아지면 코드가 상당히 더러워질것이다.

a = [123, "시간의 바깥", "사과", 3333, 5664]

리스트를 사용해 이렇게 한곳에 모아두는 게 편하지 않겠는가?

 

사용하며 익히기

 

이제 리스트에 원소를 추가하거나, 제거하는 방법을 알아보자.

 

처음부터 리스트에 내가 원하는 값을 할당하고 시작하면 좋지만 실행중간에 원소를 추가해야할 상황이 있다.

list1 = [1,2,3,4,5]
list1.append(6)
print(list1)

append함수를 사용하면 리스트 끝에 값을 추가할 수 있다. 사용법은

 

원하는리스트.append(넣을 값)

 

이렇게 사용하면 된다. 아무튼 위에 코드를 실행하면, 다음과 같은 실행결과가 나온다.

[1, 2, 3, 4, 5, 6]

이제 원소를 제거하는 방법을 알아보자.

a = [1,2,3,4,5]
del a[1]
print(a)

위와 같이 del함수를 사용하면 원하는 원소를 뽑아 제거할 수 있다. 사용방법은

 

del 원하는리스트[제거할 원소의 번지]

 

이렇게 사용할 수 있다. 그래서 위에 코드를 실행하면,

[1, 3, 4, 5]

이런 실행결과가 나온다. 위에서 말했듯, 리스트는 1이 아닌 0부터 세기때문에, 두번째에 있는 2가 제거 되었다.

 

 

그럼 이제 리스트를 좀 더 깊게 활용해보도록 하자.

 

a = [123, 100, 200]
print(a[0] + a[1] + a[2])

이 코드를 해석하자면, a라는 리스트의 0번째 원소와 1번째 원소, 2번째 원소를 더한 뒤 출력한다는 코드이다. "? 왜 첫번째가 아니라 0부터 시작하는거지?" 음... 나도 그 이유는 모르겠다. 그냥 모든 프로그래밍 언어가 0부터 시작하도록 설계되있다. 아무튼.. 리스트의 원소가 3개가 있다면, 1,2,3 이렇게 세는게 아니라 0,1,2 로 세는 게 맞다. 그래서 저 코드를 실행하면, 다음과 같은 결과가 나온다.

423

 

위에 코드를 다르게 코딩하는 방법도 있다. sum() 함수를 사용하면 해당 리스트의 모든 원소를 더해준다.

a = [123 , 100, 200]
print(sum(a))

이렇게 코드를 짜도 위와 같은 결과가 나온다.

 

그리고 또 다른 재밌는 함수가 하나 있다. sorted()라는 함수인데, 다른 프로그래밍 언어에는 이런 내장 함수가 없다. 나는 파이썬이 편한 이유 중에 하나는 다양한 함수 지원이라고 생각한다. 아무튼 sorted는 말 그대로 정렬이다. 리스트 안에 있는 원소들을 순서대로 정렬해준다.

a = [123 , 100, 200]
print(sorted(a))

 

출력결과는 다음과 같다.

[100, 123, 200]

수가 제일 작은 100 그다음 123,200 오름차순으로 잘 정렬되었다.

 

아 그리고 위에서 설명해야 했지만 못한것이 있다.

a = [1,2,3,4,5]
a[3] = 8
print(a)

 

리스트는 값을 변경할 수 있다.

 

변경할리스트[변경할 원소 번지] = 원하는 값

 

이렇게 변경이 가능하다.

출력결과는 다음과 같다.

[1, 2, 3, 8, 5]

 

 

끝맺는 말

글을 한번에 쓴게 아니라 좀 나눠서 써서 인지 좀 중구난방한 느낌이 있는데, 양해바랍니다. 아무튼 시험끝나서 강좌 글을 써봤는데, 이제는 좀 성실하게 쓰도록 하겠습니다~

반응형