Python 프로그래밍/Python 초급

파이썬 초급6 (리스트 - 자료형)

NOP(No Operation) 2020. 1. 29. 01:26

파이썬 리스트


1. 리스트


만약 우리가 선언해야 할 값이 5개라면 우리는 변수를 5개를 설정해야 할까???

이런 값을 한꺼번에 처리할 수 없을까 해서 나온 것이 리스트(List)입니다.

 

리스트(List)값을 여러 개 묶어서 선언할 수 있습니다.

 

1. 리스트 선업 법

 


오늘도 역시 파이썬IDLE [Ctrl+N]으로 새로운 창을 만들어줍니다.

 

먼저 2단변수에 저장한다고 생각한다면

1
2
3
4
a1 = 2
a2 = 4
a3 = 6
......중략
cs

이런 비효율적인 코드로 작성할 것입니다.

 

리스트로 작성한다면 더 쉽게 작성할 수 있습니다.

1
2
two = [2,4,6,8,10,12,14,16,18]
print(two)
cs

 

실행하기 전 저장을 누르고 프로젝트 폴더 "5 리스트"이란 이름으로 저장해 줍니다.

저장을 했다면 실행을 해주세요.

 

 

2단이 깔끔하게 출력되는 걸 확인할 수 있습니다.

 

리스트는 선언할 때

1
변수명 = [값, 값, 값]
cs

이런 식으로 "[]"(대괄호)감싸주며 각 값들은 ","(콤마)로 구분해줘야 합니다. 

리스트 안에 리스트선언할 수 있으며 이러한 방법은 리스트 인덱스를 할 때 매우 편해집니다. 

 

리스트 안에 여러 개의 값선언하는 법은 아래와 같습니다.

1
2
= [['2단','2','4','6'],['3단','3','6','9'],'2단과 3단']
print(b)
cs

 

출력해 봅시다.

 

 

자 지금은 상당히 보기 어렵습니다.

 

그럼 리스트 인덱싱으로 가 볼까요?

 

2. 리스트 인덱싱


리스트도 문자열처럼 인덱싱이 가능합니다.

 

맨 밑에 있는 print(b)삭제한 뒤 아래의 코드넣어주세요.

1
2
print(b[0])
print(b[1])
cs

 

실행해 보겠습니다.

 

 

문자열과 같이 리스트도 0부터 세기 때문에 print(b[0])의 코드는 b의 0번째의 값을 가져옵니다.

b의 0번째 값"['2단', '2', '4', '6']"이 들어있기 때문에 "2단과 3단"출력하게 됩니다.

 

인덱싱 하는 법과 리스트 값을 변경하는 법 코드와 주석으로 대체하겠습니다.

1
2
3
4
5
6
7
8
print(two[0]) #two변수의 첫번째 값 2인를 가져옵니다.
print(b[-1]) #문자열과 마찮가지로 b의 마지막 값 ['3단','3','6','9']를 가져옵니다.
print(b[0][1]) #b변수의 첫번째 리스트의 두번째의 값 2을 가져옵니다. 
two[2= 100 #리스트 값을 수정합니다.
b[0= '안녕하세요' #b의 ['2단','2','4','6']부분을 "안녕하세요"로 변경한다.
b[1][0= '3단단' #b의 '3단'을 "3단단"으로 수정한다.
print(two) #변경내용 
print(b) #변경내용 확인
cs

 

 

3. 리스트 슬라이싱


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

 

방법은 문자열과 동일합니다.

1
print(two[2:5]) #two변수의 세번째 값부터 다섯번째 값 까지 출력합니다.
cs

 

저장한 뒤 실행해보겠습니다.

 

 

역시 문자열과 같이 슬라이싱 해서 출력할 수 있습니다.

 

나머지 방법은 코드와 주석으로 대체하겠습니다.

1
2
print(b[0][1:]) #b변수의 첫번째 값 중에서 두번째 값부터 끝까지 출력한다.
print(two[:4]) #a변수의 첫번째부터 네번째 값까지 출력된다.
cs

 

4. 리스트 연산


리스트 "+" "*"연산을 사용할 수 있습니다.

 

리스트 덧셈(+연산자)

1
2
three = [3,6,9,12,15,18,21,24,27]
print(two+three) #two리스트와 three리스트를 연결해서 출력한다.
cs

 

실행해 보겠습니다.

 

 

위와 같이 "+" 연산자두 리스트를 연결해줍니다.

 

리스트 곱셈(*연산자)

1
print(two*2)
cs

 

실행해 줍니다.

 

 

two에 있는 값들이 두 번 출력되었습니다.

"*"연산자리스트 안에 있는 값반복합니다.

 

5. 리스트 관련 함수


 

설명은 코드와 주석으로 대체하겠습니다.

리스트의 길이 보는 법(len)

1
print(len(two)) #two리스트의 개수인 9를 반환한다.
cs

리스트 삭제하는 법(del)

1
2
3
4
del(two) #two리스트를 삭제한다
del(b[0]) #b의 리스트에 첫번째 값을 삭제한다.
print(b) #b의 첫번째 값인 ['2단', '2', '4', '6']이 삭제된 값을 반환한다.
print(two) #two가 존재하지 않기 때문에 오류가 발생한다.
cs

리스트에 추가하는 법(append)

1
2
two.append(20#two에 마지막에 20이란 값을 추가한다.
print(two) #20이 추가된 two리스트를 출력한다.
cs

리스트 정렬(sort)

1
2
3
= [5,4,2,1,3]
a.sort() #리스트의 값을 [1,2,3,4,5]순으로 정렬한다.
print(a)
cs

리스트 뒤집기(reverse)

1
2
3
= [5,4,2,1,3]
a.reverse() #a를 뒤집어 [3,1,2,4,5]를 만든다.
print(a)
cs

리스트에 있는 값 세기(count)

1
2
= [1,2,1,3,1,4,1,5]
print(a.count(1)) #count(x)는 리스트안에 x가 몇 개 있는지 반환한다.
cs

리스트 위치(index)

1
2
= [5,4,1,2,3]
print(a.index(2)) #index(x)는 x값의 위치를 반환한다.
cs

리스트 삽입(insert)

1
2
3
= [5,4,1,2,3]
a.insert(2,10#insert(x,y)는 y의 값을 x에 넣어준다.
print(a) #[5,4,10,1,2,3]을 반환한다.
cs

리스트 값 빼오기(pop)

1
2
= [5,4,1,2,3]
a.pop(2#pop(x)는 x위치에 있는 값은 반환하고 그 값을 뺀다 x가 없다면 마지막 값을 뺀다.
cs

리스트 값 제거(remove)

1
2
= [4,5,4,1,2,3]
a.remove(4#remove(x)는 첫 번째로 나오는 x를 삭제한다.
cs

 

수고하셨습니다.

코드를 치면서 이해해주면 감사하겠습니다.

※요약

더보기

리스트도 문자열처럼 더하기 곱하기 연산이 가능하며

슬라이싱이 가능하다.

여러 개의 변수를 설정하는 것보다.

리스트를 사용하는 것이 효율적이다.


※숙제

더보기

구구단 리스트를 한 변수에 담고

2단 3단 단별로 출력해주세요.

3단 리스트를 만들고 필요한 값만 빼주세요.

오늘은 파이썬의 리스트 자료형에 대해서 배워보았습니다.

아직 생소하신 분들도 있을 테니 손으로 더 코딩하면서 익숙해지시면 될 것입니다.

리스트는 매우 중요하니 이해할 때까지 하셔야 합니다.

다음 시간에는 튜플 자료형에 대해서 배워보겠습니다.