프로그래밍 언어/Python

[Python] 01. 자료형 - 리스트 자료형 (1)

민졈 2022. 6. 10. 10:25

 

 

 

 

안녕하세요! 이번 포스팅에서는 자료형의 두번째! 리스트에 대해 배워보겠습니다!!

 

 

 

 

 

파이썬에서 리스트란?

 

리스트는 데이터들을 묶어서 관리할 수 있도록 순서를 정해서 관리하는 자료형입니다.

 

 

아파트의 101호부터 1204호까지 하나씩 변수로 만들게 되면 아래와 같이 하나씩 변수를 만들어줘야합니다.

 

a1 = 101

a2 = 102

a3 = 103

...

a45 = 1201

a46 = 1202

a47 = 1203a48 = 1204

 

12층인데 호수가 4개 밖에 안되니까 일일히 만들어줄 수 있다고 해도

 

만약 그 이상이 된다면 조금 많이... 귀찮게 되겠죠?

 

 

그렇기 때문에 변수를 한번에 묶어서 관리할 수 있도록 리스트 자료형이 나오게 되었습니다.

 

1층부터 12층까지 1호만 리스트로 나타낸다면 아래와 같습니다.

 

a = [101, 201, 301, 401, 501, 601, 701, 801, 901, 1001, 1101, 1201]

 

 

층이 12개이기 때문에 일일히 쳐서 12개의 층을 만들어줬지만

 

각 층의 1호수마다 변수를 만드는 것이 아니라

 

리스트 타입의 변수 하나만으로 12개의 값을 한번에 처리할 수 있게 되었죠?

 

 

 

물론 이렇게 12개의 값을 뒤에 배울 for 문이나 while문을 통해서 간단하게 넣어줄수도 있습니다!

 

 

일단 우리는 아직 for문, while 문에 대해서는 모르니 계속해서 리스트에 대해 이야기해보겠습니다.

 

 

 

 

 

리스트는 다른 말로 시퀀스 데이터라고도 하는데요,

 

시퀀스라는 것은 데이터에 순서가 존재한다는 것을 의미합니다.

 

때문에 리스트로 묶은 데이터들은 순서대로 접근할 수 있고,

 

index를 통해 리스트[index]로 한번에 접근할 수 있습니다.

 

 

 

리스트는 변수명 = [요소1, 요소2, ... ]의 형태를 가지고 잇으며,

 

데이터들은 대괄호 안에 순서대로 존재하고 있습니다.

 

만약 요소가 없다고 해도 리스트 타입이며,

 

이는 비어있는 리스트로 초기 값 설정시에 자주 사용하기도 합니다.

 

 

 

리스트를 생성하는 방법은 2가지가 있습니다.

 

 

1. 대괄호 사용하기

 

a = [ 1, 2, 3, 4, 5 ]

b = [ 'ab', 'c', 'efggg', 2.19, 1, 44 ]

c = [ ]

 

이렇게 대괄호를 사용하여 만들 수 있으며, 리스트 내부 값은 string, number, float 등

 

데이터 타입에 관계 없이 있어도 상관없습니다.

 

앞서 말했듯이 변수 c 처럼 아무것도 없는 빈 리스트도 생성할 수 있습니다.

 

 

2. list( ) 이용하기

a = list( )

 

이렇게 list( )를 사용해서 만들 수도 있지만, 이는 비어있는 리스트입니다.

 

 

 

 

 

 

 

 

리스트의 인덱싱과 슬라이싱

앞서 말했듯이 리스트는 시퀀스 데이터로서 순서가 있기 때문에 인덱싱과 슬라이싱이 가능합니다.

 

 

 

리스트의 인덱싱

 

a = [1, 2, 3, 4]
a[ 0 ]
>> 1

위의 예제로 설명해보도록 하겠습니다.

 

우선 a 라는 리스트 자료형에 데이터 1,2,3,4를 선언해주었습니다.

 

그리고 a 리스트의 0번째 데이터를 가져왔기 때문에 결과는 1이 되는 것을 알 수 있습니다.

 

 

 

리스트 자료형은 신기하게도 리스트 안에 리스트 데이터를 넣을 수도 있는데요,

 

만약 아래와 같은 a라는 리스트 변수가 있다면

 

a [4]의 값은 무엇일까요?

 

a = [1, 2, 3, 4 , ['a', 'b', 'c'] ]

 

바로 ['a', 'b', 'c'] 입니다!

 

이렇게 리스트는 요소로 리스트를 가질수도 있습니다.

 

 

 

 

 

리스트의 슬라이싱

 

문자열과 마찬가지로 리스트로 슬라이싱을 할 수 있습니다.

 

사용법 역시 문자열과 똑같습니다!

 

a = [1, 2, 3, 4, 5]

a[0:2]
>> [1,2]

b = a[ : 2]
c = a[2 : ]

b
>> [1, 2]
c
>> [3, 4, 5]

 

[ : 2 ] 는 문자열처럼 맨 첫번째 요소인 a[0]부터 a[1]까지 나타내는 리스트입니다.

 

문자열처럼 끝의 a[2]는 포함하지 않습니다.

 

 

리스트의 슬라이싱에서 양수의 값은 왼쪽에서 오른쪽 방향으로 숫자를 세고

 

음수의 값은 오른쪽에서 왼쪽 방향으로 셉니다.

 

 

 

길이가 N 인 리스트를 슬라이싱 할 수 있는 범위는

 

양수 : 0 ~ N-1 까지

음수 : -N ~ -1까지

 

결론적으로 -N ~ N-1까지 접근이 가능합니다.

 

 

 

 

 

 

 

 

 

 

 

 

리스트의 덧셈, 곱셈, 값 변경

 

 

 

리스트 또한 숫자와 자료형처럼 덧셈, 곱셈 연산, 값 변경을 할 수 있습니다!

 

 

 

1. 덧셈

 

 

덧셈을 하게 되면 리스트가 연결이 되고,

 

그 연결된 하나의 리스트가 생성이 됩니다.

 

a = [ "Lion", 25 ]
b = [ 22, 7, "hi" ]

print(a + b)
>> [ "Lion", 25, 22, 7, "hi" ]

 

리스트에서의 덧셈은 리스트 안의 요소끼리 더하는 것이 아니라 이어 붙이는 것입니다.

 

 

 

 

 

 

 

2. 곱셈

 

리스트는 곱셈 연산자 (*)를 사용해서 곱할 수 있는데요,

 

n을 곱하게 되면 곱한 n 번 만큼 리스트를 반복해서 만들어줍니다.

 

4번 곱하면 리스트가 4번 반복이 되고,

 

0을 곱하면 빈 리스트가 되겠죠

 

a = [ 1, 3 ]
b = a * 2

print(b)
>> [1, 3, 1, 3]

print(a * 0)
>> [ ]

 

03. 값 변경

 

우리는 위에서 배운 인덱싱을 가지고 리스트의 특정 요소의 값을 변경할 수 있습니다.

 

리스트[N] = 변경하고자 하는 값

 

이런식으로 사용할 수 있는데요, 예제로 한번 보겠습니다.

 

a = [12, 354, 678]

a[1] = 33
print(a)
>> [33, 354, 678]

 

간단한 방법으로 리스트 안의 값을 변경할 수 있습니다.

 

 

 

 

 

 

이렇게 오늘은 자료형인 리스트에 대해서 알아봤는데요,

 

다음 시간에는 리스트 관련 함수들에 대해 알아보도록 하겠습니다!