#리스트 (list)
numbers = [2, 3, 5, 7, 11, 13]
names = ["윤수", "혜린", "태호", "영훈"]
# 인덱싱 (indexing)
print(names[1])
num_1 = numbers[1]
num_3 = numbers[3]
print(num_1 + num_3)
print(numbers[-1])
print(numbers[-2])
혜린
10
13
11
주의점 : [0 : 4] 0,1,2,3을 불러오는 것
#리스트 (list)
numbers = [2, 3, 5, 7, 11, 13]
names = ["윤수", "혜린", "태호", "영훈"]
#리스트 슬라이싱 (list slicing)
print(numbers[0:4]) # 4가지의 인덱스를 가져온다
print(numbers[2:]) # 0,1,2 3개의 인덱스 뒤를 가져온다.
print(numbers[:3]) # 인덱스3까지가 아니라 인덱스 2까지 가져온다.
#리스트 슬라이싱을 리스트하기
new_list = numbers[:3] # [2, 3, 5]
print(new_list[2])
[2, 3, 5, 7]
[5, 7, 11, 13]
[2, 3, 5]
5
#리스트 (list)
numbers = [2, 3, 5, 7, 11, 13]
names = ["윤수", "혜린", "태호", "영훈"]
#리스트에 정수 저장
numbers[0] = 7 # 0번 인덱스에 7을 저장
numbers[0] = numbers[0] + numbers[1]
print(numbers)
[7, 3, 5, 7, 11, 13]
[5, 3, 5, 7, 11, 13]
length로 리스트의 길이를 알려줌
numbers = [100, 4]
print(len(numbers)) # 리스트의 길이를 나타낸 함수
2
리스트에 값을 오른쪽 끝에 추가해줌
numbers = []
numbers.append(100) # 리스트에 값을 오른쪽 끝에 추가
numbers.append(4)
print(numbers)
#여러개 오른쪽 추가
numbers.extend([6, 7, 8])
[100, 4]
[100, 4, 6, 7, 8]
delete로 리스트에 값을 삭제해줌
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
del numbers[3]
print(numbers)
[2, 3, 5, 11, 13, 17, 19]
insert(인덱스 번호, 값)으로 인덱스 번호에 값을 추가해줌
4번 인덱스 ⇒ 5번째
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
numbers.insert(4, 37) #원하는 위치에 값을 추가
print(numbers)
[2, 3, 5, 7, 37, 11, 13, 17, 19]
리스트 값을 가져와서 따로 낮은 숫자로 정렬
큰 수로 정렬 sorted(리스트, reverse = Ture)
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
new_list_1 = sorted(numbers) # 작은 수 정렬
new_list_2 = sorted(numbers, reverse = True) # 반대로 큰 수 정렬
print(new_list_1)
print(new_list_2)
[2, 3, 5, 7, 11, 13, 17, 19]
[19, 17, 13, 11, 7, 5, 3, 2]
리스트 자체를 작은 수 정렬로 변환
numbers = [19, 13, 2, 5, 3, 11, 7, 17]
print(numbers.sort()) # sort 내부에는 리스트가 없으므로 None
numbers.sort()
print(numbers)
None
[2, 3, 5, 7, 11, 13, 17, 19]
greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]
greetings
리스트의 원소를 모두 출력하는 프로그램을 작성해 보세요. while
문과 리스트의 개념을 활용하시면 됩니다.출력하면 아래와 같은 결과물이 나와야 합니다.안녕
니하오
곤니찌와
올라
싸와디캅
헬로
봉주르
greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]
i = 0
length = len(greetings)
while i < length: # 인덱싱번호가 0부터라서 크기보다 1 작은 값까지 실행
print(greetings[i])
i += 1
화씨 온도(°F
)를 섭씨 온도(°C
)로 바꾸어주는 프로그램을 만들려고 합니다.
섭씨와 화씨의 관계식은 다음과 같습니다:
화씨 온도를 섭씨 온도로 변환해 주는 함수 fahrenheit_to_celsius
를 써 보세요. 이 함수를 파라미터로 화씨 온도 fahrenheit
를 받고, 변환된 섭씨 온도를 리턴합니다.
위 프로그램을 실행하면 아래처럼 출력되어야 합니다.
화씨 온도 리스트: [40, 15, 32, 64, -4, 11]
섭씨 온도 리스트: [4.4, -9.4, 0.0, 17.8, -20.0, -11.7]
# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list)) # 화씨 온도 출력
i = 0
while i < len(temperature_list):
temperature_list[i] = round(fahrenheit_to_celsius(temperature_list[i]),1)
i += 1
print("섭씨 온도 리스트: {}".format(temperature_list)) # 섭씨 온도 출력
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
먼저 한국 원화를 미국 달러로 변환해 주는 krw_to_usd
함수, 그리고 미국 달러를 일본 엔화로 변환해 주는 usd_to_jpy
함수를 써야 하는데요. krw_to_usd
함수는 파라미터로 원화 krw
을 받아서 변환된 미국 달러 액수를 리턴해 줍니다. 마찬가지로 usd_to_jpy
함수는 파라미터로 달러 usd
를 받아서 변환된 일본 엔화 액수를 리턴해 주는 거죠.
참고로 환율은 1달러에 1,000원, 그리고 1,000엔에 8달러라고 가정합니다.
2. 반복문을 통해 리스트 요소들 변환
반복문을 사용해서 리스트의 요소들을 각각 다른 화폐로 변환해야 하는데요. 그 과정에서 krw_to_usd
함수와 usd_to_jpy
함수를 활용하면 되겠죠?
위 코드를 완성하고 실행하면 아래와 같이 출력됩니다.
한국 화폐: [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
미국 화폐: [34.0, 13.0, 5.0, 21.0, 1.0, 2.0, 8.0, 3.0]
일본 화폐: [4250.0, 1625.0, 625.0, 2625.0, 125.0, 250.0, 1000.0, 375.0]
# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
return krw / 1000
# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
return usd / 0.008
# 원화(₩)으로 각각 얼마인가요?
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화폐: " + str(prices))
# prices를 원화(₩)에서 달러($)로 변환하기
i = 0
while i < len(prices):
prices[i] = krw_to_usd(prices[i])
i += 1
# 달러($)로 각각 얼마인가요?
print("미국 화폐: " + str(prices))
# prices를 달러($)에서 엔화(¥)으로 변환하기
n = 0
while n < len(prices):
prices[n] = usd_to_jpy(prices[n])
n += 1
# 엔화(¥)으로 각각 얼마인가요?
print("일본 화폐: " + str(prices))
numbers
라는 빈 리스트를 만들고 리스트를 출력한다.append
를 이용해서 numbers
에 1
, 7
, 3
, 6
, 5
, 2
, 13
, 14
를 순서대로 추가한다. 그 후 리스트를 출력한다.numbers
리스트의 원소들 중 홀수는 모두 제거한다. 그 후 다시 리스트를 출력한다.numbers
리스트의 인덱스 0
자리에 20
이라는 수를 삽입한 후 출력한다.numbers
리스트를 정렬한 후 출력한다.[]
[1, 7, 3, 6, 5, 2, 13, 14]
[6, 2, 14]
[20, 6, 2, 14]
[2, 6, 14, 20]
3번에서 홀 수 일 때 리스트를 삭제하면 그 다음 i 번호도 당겨짐
짝수 일 경우에는 추가를 해줘야 함
# 빈 리스트 만들기
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 == 1:
del numbers[i]
else:
i += 1
print(numbers)
# numbers의 인덱스 0 자리에 20이라는 값 삽입
numbers.insert(0, 20)
print(numbers)
# numbers를 정렬해서 출력
numbers.sort()
print(numbers)
어떤 값이 리스트에 있는지 확인하는 함수를 써보겠습니다.
# 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 = 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))
True
False
**in
으로 단축어**쓰는데 아주 어렵지는 않습니다. 하지만 리스트에 값의 존재를 확인하는 것은 너무 자주 있는 일이라서 파이썬에 이미 이 기능이 내장되어 있습니다. in
이라는 키워드를 쓰면 됩니다.
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 not in primes)
print(12 not in primes)
False
True
**not** **in
으로 단축어**거꾸로 값이 없는지 확인하려면 in
앞에 not
을 붙이면 됩니다.
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 not in primes)
print(12 not in primes)
False
True
리스트 안에는 또 다른 리스트가 있을 수 있습니다. 이를 영어로 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)
[62, 75, 77]
[85, 91, 89]
62
91
75.0
저번에 정렬된 새로운
리스트를 리턴시켜주는 sorted
함수를 보여드렸습니다. some_list.sort()
는 새로운 리스트를 생성하지 않고 some_list
를 정렬된 상태로 바꿔줍니다.
numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
[1, 3, 5, 7]
some_list.reverse()
는 some_list
의 원소들을 뒤집어진 순서로 배치합니다.
numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
[1, 7, 3, 5]
some_list.remove(x)
는some_list
에서 첫 번째로 x
의 값을 갖고 있는 원소를 삭제해줍니다.
fruits = ["딸기", "당근", "파인애플", "수박", "참외", "메론"]
fruits.remove("파인애플")
print(fruits)
['딸기', '당근', '수박', '참외', '메론']