학습목표
리스트, 딕셔너리, 범위를 이해한다.
for 반복문과 리스트, 딕셔너리, 범위를 조합하는 방법을 배운다.
while 반복문을 배운다.
break, continue 이해하기

리스트
자료를 저장할 수 있는 자료?
리스트 선언하기
[1, 2, 3, 4]
nums = [1, 2, 3, 4]
print(nums) # [1, 2, 3, 4]
print(nums[1]) # 2
리스트 값 변경은
리스트에 변경할 값을 입력해 주면 됩니다.
nums = [1, 2, 3, 4, "a", "에이"]
print(nums) # [1, 2, 3, 4, 'a', '에이']
print(nums[3:5]) # [4, 'a']
nums[5] = "A"
print(nums) # [1, 2, 3, 4, 'a', 'A']
대괄호 안에 음수를 넣어 뒤에서부터 요소를 선택할 수 있습니다.
nums = [1, 2, 3, 4, "a", "에이"]
print(nums[-1]) # 에이
print(nums[-4]) # 3
리스트 접근 연산자를 이중으로 사용할 수 있습니다.
nums = [1234, "대한민국", "ABCD"]
print(nums[1][0]) # 대
print(nums[0][3]) # TypeError: 'int' object is not subscriptable
전 4자를 뽑아오고 싶었는데 에러가 나네요.
그래서 고민하다가 str를 사용해 봤습니다.
nums = [str(1234), "대한민국", "ABCD"]
print(nums[1][0])
print(nums[0][3])
일단 제가 원했던 결과는 나오네요.
다음으로 리스트 안에 리스트를 사용할 수 있다고 해요.
nums = [[1, 2, 3, 4], ["대", "한", "민", "국"], "ABCD"]
print(nums[0][2]) # 3
print(nums[1][1]) # 한
print(nums[2][2]) # C
리스트 연산자 : + 연결, * 반복 len() 길이
list_a = [1, 2, 3]
list_b = [4, 5, 6]
print("list_a + list_b = ", list_a + list_b) # list_a + list_b = [1, 2, 3, 4, 5, 6]
print("list_a * 3 = ", list_a * 3) # list_a * 3 = [1, 2, 3, 1, 2, 3, 1, 2, 3]
print(len(list_a) + len(list_b)) # 6
리스트에 요소를 추가할 때
는 append(요소), insert(위치, 요소)를 사용합니다.
append()는 가장 뒤에 추가되고요.
insert()는 원하는 위치를 적어서 추가하면 됩니다.
list_a = [1, 2, 3]
list_a.append(4)
list_a.append(5)
print(list_a) # [1, 2, 3, 4, 5]
list_a.insert(0, 6)
print(list_a) # [6, 1, 2, 3, 4, 5]
extend()는 한 번에 여러개를 추가할 수 있습니다.
list_a = [1, 2, 3]
list_b = [4, 5]
list_a.extend(list_b)
print(list_a) # [1, 2, 3, 4, 5]
list_a.extend([6, 7, 8, 9])
print(list_a) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
리스트에서 요소를 제거하는 방법
값으로 제거하는 방법 : remove, clear
list_a = [1, 2, 3, 4, 5, 6, 7]
list_a.remove(4)
print(list_a) # [1, 2, 3, 5, 6, 7]
list_a.clear()
print(list_a) # []
인덱스로 제거하는 방법 : del, pop(인덱스)
list_a = [1, 2, 3, 4, 5, 6, 7]
list_a.pop(4)
print(list_a) # [1, 2, 3, 4, 6, 7]
pop(4)를 적었는데요.
숫자 4가 삭제된 것이 아니라 인덱스[4]가 삭제되어 5값이 지워졌습니다.
list_a = [1, 2, 3, 4, 5, 6, 7]
del list_a[4]
print(list_a) # [1, 2, 3, 4, 6, 7]
del()를 사용해서도 삭제할 수 있습니다.
리스트 내부에 있는지 확인하는 in / not in 연산자
list_a = [1, 2, 3, 4, 5, 6, 7]
print(4 in list_a) # True 4가 리스트에 있어서 True
print(10 not in list_a) # True 10이 리스트에 없어서 True
for 반복문
print("출석")
print("출석")
print("출석")
print("출석")
print("출석")
for i in range(5):
print("출석")
앞의 리스트를 반복에 사용할 수 있습니다.
list_a = [1, 2, 3, 4, 5, 6, 7]
for i in list_a:
print(i)
딕셔너리와 반복문
리스트가 인덱스를 기반으로 값을 저장하는 것이라면 딕셔너리는 키를 기반으로 값을 저장하는 것입니다.
변수 = {
키 : 값,
키 : 값.
}
dic1 = {"a" : 1, "b" : 2, "c" : 3}
dic2 = {"a1" : 20, "b1" : 20, "c1" : 30}
print(dic2["a1"]) # 20
dic2[a1] = 200
print(dic2["a1"]) # 200
딕셔너리 값에 리스트를 넣을 수도 있는데요.
dic1 = {"a" : [1, 2, 3, 4], "b" : ["A", "B", "C", "D"]}
print(dic1["a"])
print(dic1["a"][1])
이렇게 사용할 수 있습니다.
리스트와 딕셔너리의 사용법을 정확하게 익히는 것이 중요할 것 같네요.
리스트 | list_a = [] | list_a[1] |
딕셔너리 | dic_a = {} | dic_a["name"] |
딕셔너리 값 변경은
dic1 = {"a" : [1, 2, 3, 4], "b" : ["A", "B", "C", "D"]}
print(dic1["a"][1]) # 2
dic1["a"][1] = 200
print(dic1["a"][1]) # 200
d1 = {'a': 2, 'b': 4, 'c': 30}
d2 = {'a1': 20, 'b1': 40, 'c1': 60}
for key in d1:
print( key , ":" , d1[key])
딕셔너리는 키를 기반으로 여러 자료를 저장하는 자료형입니다.
키는 딕셔너리 내부에서 값에 접근할 때 사용하는 것입니다.
값은 딕셔너리 내부에 있는 각각의 내용을 의미합니다.
pets = [
{"name" : "구름", "age" : 5},
{"name" : "초코", "age" : 3},
{"name" : "아지", "age" : 1},
{"name" : "호랑이", "age" : 1}
]
print("# 우리 동네 애완 동물들")
for i in pets:
# print(i)
print(i["name"], str(i["age"]), "살")
반복문과 while 반복문
어떤 조건이 될 때까지 반복하는 형태의 반복을 배우게 됩니다.
범위 : range(5)
while 반복문
while 불 표현식"
문장
i = 0
while i < 10:
print("{}번째 반복입니다.".format(i))
i += 1
상태를 기반으로 반복하기
리스트에 3이 있으면 삭제하기
list1 = [1, 2, 3, 2, 3, 1, 3]
while 3 in list1:
list1.remove(3)
print(list1) # [1, 2, 2, 1]
시간을 기반으로 반복하기
유닉스 타임은 시간은 1970년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지를 정수로 나타낸 것인데요.
사용하는 형식은
import time
number = 0
target_time = time.time() + 5
while time.time() < target_time:
number += 1
print(number) # 46099988
문자열, 리스트, 딕셔너리와 관련된 기본 함수
리스트에 적용할 수 있는 기본 함수 : min(), max(), sum()
num = [104, 105, 95, 456, 183]
print(min(num))
print(max(num))
print(sum(num))
reversed() 함수로 리스트 뒤집기
num = [104, 105, 95, 456, 183]
num_reversed = reversed(num)
print(num) # [104, 105, 95, 456, 183]
print(num_reversed)
print(list(num_reversed)) # [183, 456, 95, 105, 104]
num = [1, 2, 3, 4, 5, 6, 7]
for i in reversed(num):
print(i)
for i in reversed(num):
print(i+10)
print(num[::-1]) # [7, 6, 5, 4, 3, 2, 1]
enumerate() 함수와 반복문 조합하기
example_list = ["요소A", "요소B", "요소C"]
출력값
0번째 요소는 요소A입니다.
1번째 요소는 요소B입니다.
2번째 요소는 요소C입니다.
이렇게 출력하기 위해서는 인덱스가 필요한데요.
인덱스를 강제적으로 만들어 주는 함수가 enumerate() 함수입니다.
example_list = ["요소A", "요소B", "요소C"]
print(list(enumerate(example_list))) # [(0, '요소A'), (1, '요소B'), (2, '요소C')]
for i, value in enumerate(example_list):
print("{}번째 요소는 {}입니다.".format(i, value))
///
0번째 요소는 요소A입니다.
1번째 요소는 요소B입니다.
2번째 요소는 요소C입니다.
///
딕셔너리의 items() 함수와 반복문 조합하기
enumerate()함수가 리스트 형태로 반복문을 작성할 수 있는 것처럼
딕셔너리에는 items()함수로 키와 값을 조합해서 반복문을 작성할 수 있습니다.
리스트 내포
array = []
for i in range(0, 20, 2):
array.append(i * i)
print(array) # [0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것] |
array = [i * i for i in range(0, 20, 2)]
print(array)
이렇게 코딩 할 수 있습니다.
리스트 이름 = [표현식 for 반복자 in 반복할 수 있는 것 if 조건문 |
array = [i * i for i in range(0, 20, 2)]
print(array) # [0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
# 조건 추가한 리스트
output = [num for num in array if num != 16]
print(output) # [0, 4, 36, 64, 100, 144, 196, 256, 324]
'혼공파' 카테고리의 다른 글
혼공파 5주 예외처리 6장 (0) | 2024.02.04 |
---|---|
혼공파 4주차 5장 함수 (2) | 2024.01.28 |
혼공파 ch3 조건문 (1) | 2024.01.15 |
혼공파 ch2 자료형 (0) | 2024.01.14 |
혼공파 1주 파이썬 시작하기 자료형 (1) | 2024.01.05 |