오늘은 지난 시간에 배운 리스트에 대해 이어서 공부했다.
인덱스와 슬라이싱을 사용한 실습 문제를 풀어봤는데, 그 과정을 통해 배운 내용이 인상 깊었다.
특히, 슬라이싱을 이용해 원하는 구간만 역순으로 출력하는 방법이 흥미로웠다.
data = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
print(data[0:3][::-1])
print(data[3:6][::-1])
print(data[6:9][::-1])
# ['c', 'b', 'a']
# ['f', 'e', 'd']
# ['i', 'h', 'g']
또한, 슬라이싱을 사용할 때 주의사항도 배웠다.
list = [1, 2, 3, 4]
print(list[4])list = [1, 2, 3, 4, 5]
# step에 양수를 입력하고, start에서 end를 감소시키면 -> 빈 리스트 반환
print(list[4:1:2])
# step에 음수를 입력하고, start에서 end를 증가시키면 -> 빈 리스트 반환
print(list[1:3:-1]) my_list = [1, 2, 3, 4, 5]
# 인덱스 활용으로 삭제
del my_list[2]
# 슬라이싱 활용으로 삭제
del my_list[1:3]
# 리스트 삭제
# 가변 / 불변 자료형 모두 가능 (객체 자체를 삭제하기 때문)
del my_list
print(my_list) fruits = ["토마토", "사과", "포도", "수박", "바나나"]
print("포도" in fruits)
print("참외" not in fruits)
# 조건문과 활용
if "참외" not in fruits:
print("참외는 없습니다.")
else:
print("참외는 있습니다") num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(len(num))
print(len("Coding"))
# 10
# 6 my_list = []
my_list.append(100)
my_list.append(200)
print(my_list)
# [100, 200] num = [1, 2, 3, 4, 5]
num.insert(2, 2.5)
num.insert(4, 3.5)
num.insert(0, 0)
print(num)
# [0, 1, 2, 2.5, 3, 3.5, 4, 5] num = [0, 1, 2, 2.5, 3, 2.5, 3.5, 4, 5]
num.remove(2.5)
num.remove(3.5)
print(num)
# [0, 1, 2, 3, 2.5, 4, 5] num = [0, 1, 2, 3, 2.5, 4, 5]
a = num.pop(4)
b = num.pop()
print(num)
print(a, b)
# [0, 1, 2, 3, 4]
# 2.5 5 fruits = ["사과", "수박", "포도"]
fruits.extend(["배", "참외"])
fruits.extend(("토마토", "키위")) # 튜플 추가
fruits.extend("딸기") # 문자열 추가
print(fruits)
# ['사과', '수박', '포도', '배', '참외', '토마토', '키위', '딸', '기'] # 리스트.sort() : 원본 리스트를 정렬
# 오름차순
num.sort()
print(num)
# 내림차순 : reverse 사용
num.sort(reverse=True)
print(num)
# sorted(리스트) : 정렬된 새로운 리스트를 반환
num2 = [50, 52, 53, 51]
# 원본 리스트 유지
sorted(num2)
print(num2)
# 새로운 리스트로 저장
new_num = sorted(num2)
print(new_num)
# 내림차순
new_num_desc = sorted(num2, reverse=True)
print(new_num_desc)
# [1, 2, 3, 4]
# [4, 3, 2, 1]
# [50, 52, 53, 51]
# [50, 51, 52, 53]
# [53, 52, 51, 50] # 리스트.reverse()
num3 = [1,2,3,4,5]
num3.reverse()
print(num3)
num3.reverse()
print(num3)
# reversed(리스트)
num4 = [11,22,33,44,55]
num4_rev = list(reversed(num4))
print(num4_rev)
# [5, 4, 3, 2, 1]
# [1, 2, 3, 4, 5]
# [55, 44, 33, 22, 11] num = [1,1,2,2,2,2,3,3,5,5,5,6,6]
print(num.count(2))
# 4 num2 = [4, 100, 10000, 12552, 46, 24]
print(min(num2))
print(max(num2))
# 4
# 12552 num2 = [4, 100, 10000, 12552, 46, 24]
print(sum(num2))
# 22726이렇게 리스트 파트가 마무리 되었다.
상당히 많은 내용이 있었지만, 핵심 키워드의 특징을 잘 이해하고 다양한 함수와 메서드를 자주 사용해보면 금방 적응할 수 있을 것 같다.
다음으로 배운 파트는 튜플에 관한 내용이었다.
튜플은 불변 자료형이라는 점을 제외하면 리스트와 크게 다르지 않아서, 어렵지는 않았다.
# 튜플 생성
my_tuple = (1,2,3,4)
print(my_tuple)
# 소괄호 없이 퓨플 생성
no_paren_tuple = 5,6,7,8
print(no_paren_tuple, type(no_paren_tuple))
# 원소가 하나인 튜플 생성
single_tuple = (100)
print(single_tuple, type(single_tuple))
# " , "를 만드시 붙여야 튜플로 인식
single_tuple = (100,)
print(single_tuple, type(single_tuple))
# 튜플 생성 함수로 생성
my_tuple2 = tuple()
print(my_tuple2)
# 문자열을 튜플로 변환
my_tuple3 = tuple("Coding")
print(my_tuple3)
# (1, 2, 3, 4)
# (5, 6, 7, 8) <class 'tuple'>
# 100 <class 'int'>
# (100,) <class 'tuple'>
# ()
# ('C', 'o', 'd', 'i', 'n', 'g') 과일1, 과일2, 과일3 = "사과", "수박", "참외" # 튜플
과일1, 과일2, 과일3 = ["사과", "수박", "참외"] # 리스트
문, 자, 열 = "리스트" # 문자열
print(문)
print(자)
print(열) # 튜플 수정 시도
my_tuple = (1,2,3)
my_tuple[0] = 100
# 튜플 삭제 시도
del my_tuple[1]
# 모두 에러 발생my_tuple = (10, 20, 30)
new_tuple = (100,) + my_tuple[1:]
print(new_tuple)
# (100, 20, 30)하루하루 많은 키워드와 정보를 배우다 보니, 아직 여러 개념과 키워드가 매칭이 잘 안되는 것 같다.
키워드와 개념을 연결하며 복습을 하여 기반을 잘 다져야 할 것 같다.