2024. 8. 4. 15:32ㆍ카테고리 없음
리스트 생성
많은 양의 데이터를 저장해야 하는 경우 리스트 자료형을 사용한다.
리스트 자료형은 변수명을 선언하고 대괄호 안에 , 를 사용해 데이터를 입력한다.
#변수명 = [데이터1, 데이터2, 데이터3]
user = ['고객1', '고객2', '고객3']
drink = ['콜라', '사이다', '오렌지쥬스']
price = [1200, 1200, 1000]
data = list()
data1 = [['고객1', '010-123-4567', 20], ['고객2', '010-222-3333', 22]]
data2 = [1, 2, 3, ['고객1', '고객2', '고객3']]
리스트 인덱싱
price = [100,200,300]
p1 = price[0]
p2 = price[-1]
print(p1, p2)
100 300
data = [['고객', '010-123-4567', 20], ['고객2', '010-222-3333', 22]] #리스트 안에 리스트
print(data[0]) #data리스트 안에 1번째 요소 가져오기
print(data[0][1]) #data리스트 안에 1번째 요소 안에 2번째 요소 가져오기
['고객', '010-123-4567', 20]
010-123-4567
리스트 인덱싱을 활용한 데이터 수정
price = [1, 200, 300]
price[0] = 100 #price리스트 안에 첫번째 값을 100으로 넣어라
print(price)
[100, 200, 300]
리스트 슬라이싱
week_sales = [10, 20, 10, 30, 40, 50, 30]
result = week_sales[0:3]
print(result)
[10, 20, 10]
슬라이싱을 이용해 데이터를 수정하기
week_sales = [10, 20, 10, 30, 40, 50, 30]
week_sales[0:3] = [100, 200, 300]
week_sales
[100, 200, 300, 30, 40, 50, 30]
리스트 연산
리스트는 더하기와 곱하기 연산자를 사용할 수 있다. 더하기는 결합의 의미
data1 = [1, 2, 3]
data2 = [4, 5, 6]
print(data1 + data2)
[1, 2, 3, 4, 5, 6]
곱하기 연산자는 데이터를 곱한 만큼 반복해서 더해준다.
data = [1, 2, 3]
print(data*3)
[1, 2, 3, 4, 5, 6]
리스트에서 자주쓰이는 함수
append()
리스트 뒤에 데이터를 추가할 때 사용.
리스트.append(데이터) 형태로 사용
price = [1, 2, 3]
price.append(3)
price.append([10, 20, 30])
# price.append(10, 20, 30) TypeError: list.append() takes exactly one argument (3 given)
print(price)
[1, 2, 3, 3, [10, 20, 30]]
extend()
두 개의 리스트를 하나의 리스트로 만들 때 사용한다. 리스트로 .extend(리스트) 형태로 사용
price = [1, 2, 3]
price.extend([4, 5, 6])
price
[1, 2, 3, 4, 5, 6]
insert()
리스트의 특정 인덱스 위치에 데이터를 추가할 때 사용한다.
리스트.insert(인덱스, 데이터)의 형태로 사용한다.
price = [1, 2, 3]
price.insert(1, 10)
print(price)
[1, 10, 2, 3]
remove()
리스트의 데이터를 삭제할 때 사용한다. 리스트.remove()의 형태로 사용한다.
리스트에서 첫 번째로 찾은 데이터를 삭제한다.
drink_name = ['콜라', '사이다', '콜라', '오렌지주스']
drink_name.remove('콜라')
print(drink_name)
['사이다', '콜라', '오렌지주스']
pop()
리스트에서 맨 마지막 데이터를 가져온 후 삭제한다.
가지고 온 데이터는 변수 등에 저장해서 사용. 리스트.pop()의 형태로 사용한다.
price = [1, 2, 3]
data = price.pop()
print(price)
print(data)
[1, 2]
3
리스트 컴프리핸션의 기본 구조
[expression for item in iterable if condition]
expression은 각 항목에 대해 계산되거나 변환되는 값
item은 현재 반복중인 요소
iterable은 반복 가능한 객체(리스트, 튜플, 문자열 등)
if condition 은 선택 사항으로 조건이 참을 때만 항목이 포함된다.
예시
기본 리스트 컴프리핸션: 주어진 리스트의 각 요소를 제곱한 값을 갖는 새로운 리스트를 만든다.
numbers = [1, 2, 3, 4, 5]
squares = [n ** 2 for n in numbers]
print(squares)
[1, 4, 9, 16, 25]
조건을 포함한 리스트 컴프리핸션
주어진 리스트에서 짝수만 포함하는 새로운 리스트
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [n for n in numbers if n % 2 == 0]
print(even_numbers)
[2, 4, 6]
주어진 리스트의 각 문자열에서 'pie'를 'cake'로 대체한다.
desserts = ['apple pie', 'banana pie', 'cherry pie']
new_desserts = [dessert.replace('pie', 'cake') for dessert in desserts]
print(new_desserts)
['apple cake', 'banana cake', 'cherry cake']
중첩된 리스트 컴프리핸션
2차원 리스트의 모든 요소를 1차원 리스트로 평탄화한다.
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flat_list = [num for row in matrix for num in row] #flat_list 안에 담아라 num들을, matrix안에 row를 반복, row 안에 num 들에 대해.
print(flat_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
딕셔너리 컴프리핸션
키와 값의 조건을 바탕으로 새로운 딕셔너리를 생성한다.
fruits = {'apple':1, 'banana':2, 'cherry':3}
new_fruits = {key:value for key, value in fruits.items() if value > 1}
print(new_fruits)
{'banana' : 2, 'cherry' : 3}