study/프로그래밍

[Python 기초] 자료형2, List(리스트)란?/List 다루기

밥짓는사나이- 2022. 7. 4. 19:15
728x90

묶음형 자료형 들이라고 할수 있는 자료형이 있습니다.

List , Tuple, Dictionary인데요. 각각에 대해 한번 다루도록 하겠습니다.

먼저 리스트를 다뤄볼게요.

 

1. List (리스트)

리스트는 데이터를 나열한 묶음 이라고 볼수 있습니다. 우리가 어떤 솔루션을 만들다 보면, 유사한 데이터들을 담을 곳들이 필요할 텐데요, 그렇다고 하나하나 모두 변수로 만들어 버릴순 없습니다. 그래서 리스트를 사용하게 되는 거죠.

리스트가 없다면 어떻게 될까요? 하나하나 변수에 담아줘야 겠죠. 아래처럼요.

## 4개의 과일을 변수에 저장해보자
fruit1= 'apple'
fruit2= 'banana'
fruit3= 'orange'
fruit4= 'grape'

코드도 길고 변수도 많이 사용하게 되죠. 그럼 리스트를 사용해 볼까요? 일단 어떻게 쓰는지 부터 봅시다.

리스트 변수명 =  [데이터0, 데이터1, 데이터2,..., 데이터n]

네 대괄호' [  ] '를 사용해서 만들수 있고, 대괄호 안에 데이터들을 나열해주면 되요. 위에  과일들로 한번 만들어보죠.

## 리스트를 쓰면?
## 리스트 변수명 = [데이터0, 데이터1,....데이터n]
fruits = ['apple', 'banana','orange','grape']

쉽죠. 이렇게 쓰면 여러개의 데이터를 나열해서 담은 리스트를 만들수 있게 됩니다.

 

2. 리스트 다루기1- 데이터 선택하기(인덱싱, 슬라이싱)

데이터를 담아두었는데, 리스트 안의 데이터를 선택하고 잘라보고, 자유자재로 만질수 있어야 겠죠. 그래서 인덱싱, 슬라이싱을 먼저 다룰겁니다.

인덱싱:::::

리스트를 생성하면, 순서대로 데이터에 번호, 인덱스가 붙는다고 생각하시면 됩니다. 즉, 첫번째 데이터는 0번, 두번째 데이터는 1번....(우리의 앞선코드에서 0번은 apple, 1번은 banan겠죠.) 그럼 이 인덱스 번호를 통해서 어떻게 선택하는지 보여드릴게요.

인덱싱::: 리스트변수명[인덱스번호] 

이렇게 변수명 뒤에 대괄호를 붙이고, 대괄호 안에, 인덱스 번호를 넣어주면, 해당데이터를 선택할 수 있습니다.

슬라이싱:::

데이터를 하나만 선택하고싶은게 아니라, 두개씩 선택하고 싶어요.. 라고 할수 도 있겠죠? 두개 세개 네개 여러개를 선택하고자 한다면, 슬라이싱을 사용합니다. 다만, 연속된 선택이 가능해요. 즉, 0에서 3번까지, 1에서 2번까지 이런식으로 선택해서 리스트로 반환시킬수 있는거죠. 어떻게요?

슬라이싱::리스트변수명[시작인덱스번호: 끝인덱스번호+1]

인덱싱할때처럼 하되, 시작과 끝이 필요하니 ':'을 중간에 넣어주면 됩니다. 주의할점은 뒤에오는 인덱스는 선택하려는 인덱스번호+1해주셔야되요. 즉 [0:3] 이라고 한다면, 0,1,2 인덱스에 해당하는 데이터만 나오게 됩니다. 코드로 보면..

## 데이터를 선택하자 list[index]
## index: 0부터~
print(fruits[0])

## 데이터를 선택하자. 잘라보자. 슬라이싱
## 리스트[시작인덱스: 끝인덱스+1]
print(fruits)
print(fruits[0:3])
print(fruits[:3])
print(fruits[1:-1])

두가지정도 의문이 생길텐데요..

첫번째 , 어라? -1은 뭔가요?? 싶으시죠..? 우리가 리스트의 마지막 데이터의 인덱스는.. 리스트 길이(데이터의갯수)에 따라 변하겠죠. 항상 확인해봐야 알수 있을텐데, 이를 편리하게 해주기위한게, '-1' 인덱스입니다. 바로 마지막을 의미해요.

두번째, 비어있는건 뭐죠? 앞쪽이 비어있다면, "제일 처음부터" 라는 뜻이죠 즉, 0을 생략한것이구요. 뒤쪽이 비어있다면 "끝까지"라는 의미입니다.

 

3. 리스트 다루기2- 추가, 삭제(append, del)

리스트에 데이터를 추가(append), 삭제 (del) 할수 있습니다. 바로 코드로 보여드릴게요

## 데이터를 추가하자 append
## 리스트.append('데이터')
fruits.append('mango')
print(fruits)


## 데이터를 삭제해보자 del
## del 리스트[인덱스] 
del fruits[0]
print(fruits)
728x90

4.리스트의 길이? 리스트의 정렬(len, sort)

앞서 언뜻 리스트의 길이를 언급했죠. 리스트의 길이는 리스트안의 데이터 갯수입니다.

정렬은 말그대로, 순서대로 나열하는것이죠. 순서를 바꿔주는 겁니다. 크기나, 글자 순서대로요. 사용방법은

길이:: len(리스트명)   //   정렬:: 리스트명.sort()

코드로 한번씩 보도록 할게요

## 리스트를 정렬하자. sort
print(fruits.sort())

## 리스트 길이
print(len(fruits))

 

5. 통계들..Max, Min, Sum, count

앞선 예제는 과일들, 즉 문자열로 이뤄진 리스트였기 때문에, 통계가 의미가 없지만, 숫자형 데이터로 이뤄진 리스트들은 통계들을 쉽게 구할수 있어요. 여러개의 변수에 각각 넣어뒀을때보다 훨씬 간단해지죠..

최대값(max)과 최소값(min) 그리고 총합(sum)을 구할수 있고, 특정 데이터가 몇개 들어있는지 확인이 가능합니다.(.count) 

## list통계 계산
score = [10,20,30,20,10]

## 특정데이터의 갯수
print(score.count(10))
## 최대, 최소, 합계
print(max(score), min(score), sum(score))

 

리스트가 무엇인지 어떻게 다룰수 있는지 다뤄봤습니다.

다음은 튜플과 딕셔너리에 대해 한번 알아보도록 하겠습니다.

728x90
728x90