# 리스트 : 변수에 값을 여러 개 저장하고 싶을 때 사용
numbers = [2,3,5,7,11,13]
names = ["윤수", "혜린", "태호", "영훈"]
print(numbers)
print(names)
#
인덱스 (index) : 요소의 위치
인덱싱 (indexing) : 인덱스를 통해 요소를 받아오는 것
numbers = [2,3,5,7,11,13]
names = ["윤수", "혜린", "태호", "영훈"]
# 인덱싱 (indexing)
print(numbers[1] + numbers[3])
print(numbers[-1])
print(numbers[-2])
print(numbers[-6])
pirnt(numbers[6]) # 오류
# 리스트 슬라이싱 (list slicing) : 리스트 자르기
numbers = [2,3,5,7,11,13]
names = ["윤수", "혜린", "태호", "영훈"]
# 리스트 슬라이싱 (list slicing)
print(numbers[0:4]) # index 0부터 4개 [2, 3, 5, 7]
print(numbers[2:]) # index 2부터 마지막 요소까지 [5, 7, 11, 13]
print(numbers[:3]) # index 0부터 3개 [2, 3, 5]
numbers = [2,3,5,7,11,13]
names = ["윤수", "혜린", "태호", "영훈"]
new_list = numbers[:3]
print(new_list[2])
numbers[0] = 7 # [7, 3, 5, 7, 11, 13]
print(numbers)
# 리스트 함수
numbers = [2, 3, 5, 7, 11, 13]
print(numbers)
print(len(numbers)) # 리스트의 길이 출력
print()
numbers.append(17) # 리스트에 값 추가 (리스트 가장 오른쪽에 값 추가)
numbers.append(19)
print(numbers)
print(len(numbers))
print()
del numbers[3] # numbers 리스트의 index 3 삭제
print(numbers)
print(len(numbers))
print()
numbers.insert(4, 37) # index 4에 37 추가
print(numbers)
print(len(numbers))
'''
.insert() : 원하는 자리에 값 추가 가능
.append() : 무조건 가장 오른쪽에 값 추가
'''
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
new_list = sorted(numbers)
''' sorted() : 기존의 리스트를 건드리지 않음. 새로운 리스트를 리턴'''
print(new_list)
new_list = sorted(numbers, reverse = True) # 역정렬
print(new_list)
print()
print(numbers) # 정렬 되기 전 기존의 리스트 출력
print()
print(numbers.sort()) # None 출력
'''sort() : 기존 리스트 정렬. 아무것도 리턴하지 않음'''
numbers.sort()
print(numbers)
numbers.sort(reverse = True) # 역정렬
print(numbers)
# 실습과제
greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]
i = 0
while i < len(greetings):
print(greetings[i])
i += 1
# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
temperature_list = [40, 15, 32, 64, -4, 11]
print(f"화씨 온도 리스트: {temperature_list}") # 화씨 온도 출력
i = 0
while i < len(temperature_list):
temperature_list[i] = round(fahrenheit_to_celsius(temperature_list[i]), 1)
i += 1
print(f"섭씨 온도 리스트: {temperature_list}") # 섭씨 온도 출력
# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
return round(krw / 1000, 1)
# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
return round(usd * 1000 / 8, 1)
# 원화(₩)으로 각각 얼마인지 출력
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print(f"한국 화폐: {prices}")
# prices를 원화(₩)에서 달러($)로 변환하기
i = 0
while i < len(prices):
prices[i] = krw_to_usd(prices[i])
i += 1
# 달러($)로 각각 얼마인지 출력
print(f"미국 화폐: {prices}")
# prices를 달러($)에서 엔화(¥)으로 변환하기
i = 0
while i < len(prices):
prices[i] = usd_to_jpy(prices[i])
i += 1
# 엔화(¥)으로 각각 얼마인지 출력
print(f"일본 화폐: {prices}")
# 빈 리스트 만들기
numbers = []
print(numbers)
# numbers에 값들 추가
numbers.append(1)
numbers.append(7)
numbers.append(3)
numbers.append(6)
numbers.append(5)
numbers.append(2)
numbers.append(13)
numbers.append(14)
print(numbers)
# numbers에서 홀수 제거
i = 0
while i < len(numbers):
if numbers[i] % 2 != 0:
del numbers[i]
else:
i += 1
print(numbers)
# numbers의 인덱스 0 자리에 20이라는 값 삽입
numbers.insert(0, 20)
print(numbers)
# numbers를 정렬해서 출력
numbers.sort()
print(numbers)
값 한번에 추가하려면
numbers = []
x = [1, 7, 3, 6, 5, 2, 13, 14]
numbers.extend(x)
print(numbers)
else 해주는 이유
첫 번째 요소를 del 하면 두 번째 요소가 첫 번째 요소로 당겨짐
else 인 경우에만 i += 1을 해서 넘어가고, 기본으로는 i값을 그대로 두어야
del 을 통해 요소로가 앞당겨진 경우에도 당겨진 요소가 홀수인지 짝수인지를 판단할 수 있음
# 리스트에서 값의 존재 확인하기
# value 가 some_list 의 요소인지 확인
def in_list(some_list, value):
i = 0
while i < len(some_list):
# some_list 에서 value 값 찾으면 True 리턴
if some_list[i] == value:
return True
i += 1
# 만약 some_list 에서 value 값을 발견하지 못하면 False 리턴
return False
# 테스트
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(in_list(primes, 7))
print(in_list(primes, 12))
리스트 값의 존재를 확인하는 일은 자주 있는 일이기 때문에 파이썬에 이미 이 기능이 내장되어 있음
primes = [2, 3, 5, 7, 11, 13, 17, 19]
print(7 in primes)
print(12 in primes)
print()
print(7 not in primes)
print(12 not in primes)
# 리스트 안의 리스트 (Nested List)
# 세 번의 시험을 보는 수업
grades = [[62, 75, 77], [78, 81, 86], [85, 91, 89]]
# 첫 번째 학생의 성적
print(grades[0])
# 세 번째 학생의 성적
print(grades[2])
# 첫 번째 학생의 첫 번째 시험 성적
print(grades[0][0])
# 세 번째 학생의 두 번째 시험 성적
print(grades[2][1])
# 첫 번째 시험의 평균
print((grades[0][0] + grades[1][0] + grades[2][0]) / 3)
# sort 메소드
some_list.sort() : 새로운 리스트를 생성하지 않고 some_list 를 정렬된 상태로 바꿔줌
cf) sorted() : 새로운 리스트를 만들고 정렬해 리턴
numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
# reverse 메소드
some_list.reverse() : some_list 의 원소들을 뒤집어진 순서로 배치
numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
# index 메소드
some_list.index(x) : some_list 에서 x 의 값을 갖고 있는 원소의 인덱스 리턴
members = ["영훈", "윤수", "태호", "혜린"]
print(members.index("윤수"))
print(members.index("태호"))
# remove 메소드
some_list.remove(x) : some_list 에서 첫 번째로 x의 값을 갖고 있는 원소 삭제
fruits = ["딸기", "당근", "파인애플", "수박", "참외", "메론"]
fruits.remove("파인애플")
print(fruits)