오늘은 제어문의 '리스트' 자료형 부분을 배운다.
CH 05. 제어문
02. 리스트 자료형
학습목표
- 리스트를 사용하는 이유
- 리스트 만드는 방법
- 데이터 접근하기
- 데이터 추가, 수정, 삭제
- 리스트 슬라이싱
- 리스트 길이, 리스트 정렬
리스트를 사용하는 이유?
ex. 10개의 동물 이름 데이터를 저장하는 상황이라면
animai1 = "사자" ... animal10 = "강아지" 라는 10개의 변수를 만들었다고 하자
그런데 만약 동물이 100, 1000으로 늘어난다면 ?
이럴 때 새로운 자료형이 필요해진다.
이를 리스트로 만들면 한 줄에 천개, 만개를 저장 가능하다!
animals = ["사자", "호랑이" ... "강아지"]
이때 [] 대괄호 안에 그 안에 데이터는 콤마(,)로 구분
> 데이터는 문자열, 숫자형, 불린형이든 다 넣어줄 수 있다.
즉,
리스트명 = [데이터, 데이터, ... , 데이터]
이렇게 만들어 줄 수 있다.
이때 반드시 데이터는 안 넣어도 된다.
리스트 = []
이렇게 껍데기만 있는 빈 리스트 자료형을 만들 수 있다.
데이터에 접근하기
인덱스라는 것을 사용해서 리스트의 순서를 알 수 있는데
이때 0 부터 시작한다는 것이 중요하다.
만약 animals = ["사자", "호랑이" ... "강아지"] 라는 리스트에서
첫 번째 데이터 '사자'를 가져오고 싶다면? (리스트 + 인덱스 번호)
animals[0]
데이터 조작하기
데이터 추가 : 리스트.append(데이터)
데이터 할당 : 리스트[인덱스] = 데이터
데이터 삭제 : del 리스트[인덱스]
예시
a = [1,2,3]
1) 추가 : a.append(4) > 결과 = [1,2,3,4]
2) 할당 : a[0] = 0 > 결과 = [0,2,3,4]
3) 삭제 : del a[1] > 결과 = [0,3,4]
데이터 조작하기
슬라이싱 : 리스트 [시작:끝 +1]
(특정 리스트의 부분을 뽑아오는 것)
리스트 길이 : len(리스트)
리스트 정렬 : 리스트.sort()
예시
b = [3,4,2,1]
1) 슬라이싱 : b[1:3] > 결과 [4,2]
2) 길이 : len(b) > 결과 4
3) 정렬 : b.sort() > 결과 [1,2,3,4] 오름차순으로 정렬
실습
# 1. 리스트 만들기
# - 데이터가 있는 리스트
animals = ["가물치", "벼메뚜기", "비단뱀", "도롱뇽"]
# - 데이터가 없는 리스트
empty = []
# 2. 리스트 조작하기
# - 데이터 접근하기
# 인덱스는 0 부터 시작함!
print(animals[2])
print(animals[-1]) # -1은 가장 마지막 데이터 반환
# - 데이터 추가하기
animals.append("고라니")
print(animals)
# - 데이터 할당하기
animals[1] = "청개구리"
print(animals)
# - 데이터 삭제하기
del animals[0]
print(animals)
# - 리스트 슬라이싱
print(animals[1:3])
print(animals[:]) #전체를 가져오라는 뜻
print(animals[:3]) #시작 인덱스 생략 = 자동으로 0 값 들어감
print(animals[1:]) #마지막 생략 = 끝까지
# - 리스트 길이
print(len(animals))
# - 리스트 정렬
animals.sort()
print(animals)
# 내림차순으로 정렬하고 싶다면?
animals.sort(reverse=True)
print(animals)
리스트 실습 문제
실습 문제 5.2.1
다음은 패스트 고등학교 2학년 3반 1번부터 5번까지의 1분간 팔굽혀펴기 개수이다.
데이터는 리스트에 저장되어 있다. 각 문행을 실행한 결과를 출력해보자.
result = [33, 40, 12, 63, 52]
인덱스는 0,1,2,3,4
문항 1 append
문항 2 데이터 변경
문항 3 슬라이싱 3-6
문항 4 오름차순 정렬 sort
실습 문제 5.2.2
턱걸이 평균 측정 프로그램
1) 턱걸이를 저장할 빈 리스트 만들기
2) 일주일 간의 턱걸이 횟수를 입력 받아 리스트에 저장 (이때 append 이용하기)
3) 리스트에 저장된 평균을 구해 출력 (출력은 정수형이니 int 붙여주자)
exercise = []
number = [] 에서 계산한 걸 어떻게 리스트로 넘겨줄까?
return는 함수의 결괏값을 돌려주는 명령어
input 사용하기
평균 구하기 = 연산 /
exercise = []
1day = int(input("1일차 턱걸이 횟수 >>>"))
2day = int(input("2일차 턱걸이 횟수 >>>"))
3day = int(input("3일차 턱걸이 횟수 >>>"))
4day = int(input("4일차 턱걸이 횟수 >>>"))
5day = int(input("5일차 턱걸이 횟수 >>>"))
6day = int(input("6일차 턱걸이 횟수 >>>"))
7day = int(input("7일차 턱걸이 횟수 >>>"))
total = day1 + day2 + day3 + day4 + day5 + day6 + day7
avg = total/7
exercise.append(total)
일단, 변수 앞에 숫자가 오면 안되는건 확실히 알았다.
또한 구글링을 통해 리스트로 값 받아오기를 알았다.
https://art-coding3.tistory.com/6
>> 일반적으로 입력받은 것들을 문자열로 받아들인다. (그래서 int가 필요함)
1. list1이라는 빈 리스트를 생성한다. (나는 exercise)
2. input을 통해 사용자가 값을 입력하게 하고 이를 s라는 변수에 저장한다 (total)
3. s에 저장된 변수를 append를 써 list1에 넣는다 (!!!)
4. print를 통해 리스트를 출력한다.
일단 성공한 줄 알았는데, 출력해보니 154라는 값 즉 전체를 더한 값이 나왔다.
avg에서 값이 정상적으로 나온 것은 그냥 total의 avg를 계산한 것이다.
풀이를 보자.
결과가 22.0 으로 실수형으로 나오기 때문에, 정수형으로 나오게 하려면?
print(int(avg))
이렇게 avg앞에도 int 로 감싸기
오늘의 소감✍️
일정을 무리해서 잡으면 안되겠다고 또 다짐하는 이번달...
그래도 하고싶은 것도 많고 해야하는 것도 많은 이 시기를 즐기고
다만 필수적인 부분과 그렇지 않은 부분에 대한 구분은 필요하다.
갑작스레 아이폰 #ios16 업데이트 이후
음성 메모 (voice memo) 16.2 테라로 잡히는 기적의 오류로
며칠을 해결해야한 시간적 부분은 아쉬움이 남기는 하지만,
#아이폰 재설정 이라는 최후의 보루가 있어서
어찌저찌 해결되었다.
다만 16테라 그 친구는 여전히 잡히는 중이라,
다음 업데이트를 기다리거나 공장초기화 밖엔 일단 방법이 없어 보인다.
'[부트캠프] IT 코딩 부트캠프 후기 > [Let's TIL😶🌫️] FastCampus' 카테고리의 다른 글
[Let's TIL✍️] 초격차 패키지 (Python web) _ PART 1. 제어문 : 조건문과 실습 (0) | 2022.09.22 |
---|---|
[Let's TIL✍️] 초격차 패키지 (Python web) _ PART 1. 연산과 연산자 (0) | 2022.09.21 |
[Let's TIL✍️] 초격차 패키지 (Python web) _ PART 1. 소개 및 환경 설정, 자료형과 변수 (2) | 2022.09.21 |
[Let's TIL✍️] 코딩 18 : 웹개발 왕초보 과정 1기를 마치며 (0) | 2022.09.05 |
[Let's TIL✍️] 코딩 18 : 5 Week_ 스터디 (0) | 2022.09.04 |