🟡 Python 3차 강의 🟡
✅ 리스트
🔰 리스트 메서드
▶ 요소 추가
- append(item) : 리스트의 끝에 요소 추가
fruits = ['apple', 'banana']
fruits.append('cherry')
print(fruits)
>>>
['apple', 'banana', 'cherry']
- insert(index, item) : 지정한 위치에 요소 추가
fruits.insert(1, 'blueberry')
print(fruits)
>>>
['apple', 'blueberry', 'banana', 'cherry']
- extend(iterable) : 리스트를 확장하여 다른 이터러블의 모든 요소를 추가
fruits.extend(['date', 'fig'])
print(fruits)
>>>
['apple', 'blueberry', 'banana', 'cherry', 'date', 'fig']
▶ 요소 제거
- remove(item) : 첫 번째로 일치하는 요소를 제거
fruits.remove('banana')
print(fruits)
>>>
['apple', 'blueberry', 'cherry', 'date', 'fig']
- pop(index) : 지정한 인덱스의 요소를 제거&반환. 인덱스를 지정하지 않으면 마지막 요소를 제거
# fruits의 2번 인덱스 제거
item = fruits.pop(2)
print(item)
print(fruits)
>>>
cherry
['apple', 'blueberry', 'date', 'fig']
- clear() : 모든 요소를 제거
fruits.clear()
print(fruits)
>>>
[]
▶ 요소 검색 및 개수 세기
- index(item) : 요소의 인덱스 반환
numbers = [1, 2, 3, 2, 4]
idx = numbers.index(2)
print(idx)
>>>
1 (첫 번째로 일치하는 인덱스)
- count(item) : 요소의 개수 반환
# numbers 리스트에서 2라는 값의 개수
cnt = numbers.count(2)
print(cnt)
>>>
2
▶ 정렬
- sort() : 리스트를 오름차순으로 정렬
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort()
print(numbers)
>>>
[1, 2, 5, 5, 6, 9]
# 역순 출력
numbers.sort(reverse=True)
print(numbers)
>>>
[9, 6, 5, 5, 2, 1]
- reverse() : 리스트의 요소 순서를 거꾸로 출력
numbers.reverse()
print(numbers)
>>>
[9, 6, 5, 5, 2, 1]
🔰 리스트 활용
▶ 리스트 연산
연산자를 사용하여 리스트를 연결
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list1 + list2
print(result)
>>>
[1, 2, 3, 4, 5, 6]
▶ 리스트 반복 (Repetition)
연산자를 사용하여 리스트를 반복
list1 = ['a', 'b']
print(list1 * 3)
>>>
['a', 'b', 'a', 'b', 'a', 'b']
▶ 리스트 컴프리헨션 (List Comprehension)
간결하고 효율적인 방법으로 새로운 리스트를 생성하는 문법
new_list = [expression for item in iterable]
Ex) 1부터 10까지의 숫자 중에서 짝수만 제곱하여 리스트 생성
# 리스트 컴프리헨션 사용
squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(squares)
>>>
[4, 16, 36, 64, 100]
# 리스트 컴프리헨션 미사용
squares = []
for x in range(1, 11):
if x % 2 == 0:
squares.append(x**2)
print(squares)
>>>
[4, 16, 36, 64, 100]
Ex) 문자열 리스트에서 각 단어의 길이로 구성된 리스트 생성
words = ['apple', 'banana', 'cherry']
lengths = [len(word) for word in words]
print(lengths) # 출력: [5, 6, 6]
▶ 리스트의 반복문 활용
리스트의 각 요소에 접근하거나 처리하기 위해 반복문을 사용
Ex) for 루프
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
*>>>
apple
banana
cherry*
Ex) 인덱스와 함께 반복하기
# enumerate : 인덱스와 값을 함께 불러올 수 있습니다.
for index, value in enumerate(fruits):
print(f'인덱스 {index}: {value}')
✅ 튜플
순서가 있는 불변(immutable)의 객체 집합
리스트와 매우 유사하지만, 한 번 생성되면 그 내부의 요소를 변경할 수 없음
- 튜플 패킹
괄호를 생략하고 여러 값을 쉼표로 구분하면 튜플로 인식
my_tuple = 1, 2, 3
print(my_tuple)
print(type(my_tuple))
>>>
(1, 2, 3)
<class 'tuple'>
- 튜플 언패킹
튜플의 요소를 여러 개의 변수에 할당
packed_tuple = 1, 2, 3
a, b, c = packed_tuple
print(a)
print(b)
print(c)
>>>
1
2
3
- 요소 변경, 추가, 삭제 불가 ! ! ! ⇒ 시도 시 에러 or 원본 유지
- 가능한 메서드
- count() : 특정 요소의 개수를 반환
- index() : 튜플에서 첫 번째로 일치하는 요소의 인덱스를 반환
🔰 과제
실습 01
더보기
더보기



1)

cities = ["Seoul", "Busan", "Incheon", "Gwangju", "Daejeon"]
sub_cities = list(cities[1:4])
print(sub_cities)
sub_cities.reverse()
reversed_cities = sub_cities
print(reversed_cities)
reversed_cities.append("Ulsan")
print(reversed_cities)
2)

# 컴프리헨션 미사용
result = []
for i in range(1, 31):
if i % 3 == 0 and i % 2 != 0:
result.append(i)
print(result)
# 컴프리헨션 사용
result = [i for i in range(1,31) if i % 3 == 0 and i % 2 != 0]
print(result)
3)

userlist = list(map(int, input("정수를 입력하세요 (공백 구분) : ").split()))
print(f"최댓값 : {max(userlist)}")
print(f"최댓값 : {min(userlist)}")
print(f"최댓값 : {sum(userlist)/len(userlist)}")
실습 02
더보기
더보기


1)

a, b = map(int, input("정수 두 개 입력 : ").split())
a, b = b, a
print(f"교환 후 : a = {a}, b = {b}")
2)

fruits = ("사과", "배", "포도", "딸기", "바나나", "귤", "망고")
print("첫 3개 과일 :", fruits[0:3])
print("마지막 3개 과일 :", fruits[-3:])
print("짝수 인덱스 과일 : ", fruits[2::2])
미니 과제
더보기
더보기
#####################################################################################
### 미니과제 리스트 7문제 ###
# 01
'''
banana, date
4
error
# 02
2,3,4
# 03
fruits = ['apple', 'banana', 'cherry']
fruits.append("date")
print(fruits)
# 03-1
fruits = ['apple', 'banana', 'cherry', 'date']
fruits.insert(2, "watermelon")
print(fruits)
# 03-2
[['apple', 'banana', 'cherry', 'watermelon', 'date']],['melon', 'blueberry'] # => 틀림
# 답
[['apple', 'banana', 'cherry', 'watermelon', 'date'], 'melon', 'blueberry']
['apple', 'banana', 'cherry', 'watermelon', 'date', 'melon', 'blueberry']
# 03-3
fruits = ['apple', 'banana', 'cherry', 'watermelon', 'date']
fruits.remove("cherry")
print(fruits)
# 04
['e', 'd', 'c', 'b', 'a']
# 05
[1, 2, 3]
[4, 5]
[1, 2, 3, 4, 5, 4, 5]
# 06
5, 4, 3, 2
# 07
numbers = [1, 3, 3, 1, 7, 2, 9, 3, 5, 7]
ind = numbers.index(7)
print(ind)
# 07-1
numbers = [1, 3, 3, 1, 7, 2, 9, 3, 5, 7]
cnt = numbers.count(3)
print(cnt)
### 실습 리스트 5문제 ###
# 01
[1, 2, 3, 4, 5] # 틀림
# 답
[1, 9, 9, 9, 5]
# 02
mystr = "hello"
mylist = []
for i in mystr:
mylist.append(i)
print(mylist)
# 03
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort()
print(numbers)
# 03-1
numbers.reverse()
print(numbers)
# 04
# 05
[1, 2, 3] #틀림
# 답
[1, 2, 3, 4]
### 심화 4문제 ###
### 리스트 컴프리헨션, 반복문, 조건문 사용 ###
####### 01 #######
numbers = [1, 2, 3, 4, 5]
# 미사용
mylist = []
for i in numbers:
mylist.append(i**2)
print(mylist)
# 사용
mylist = [i**2 for i in numbers]
print(mylist)
####### 02 #######
numbers = [1, 2, 3, 4, 5, 6]
# 미사용
mylist = []
for i in numbers:
if i % 2 == 0:
mylist.append(i)
print(mylist)
# 사용
mylist = [i for i in numbers if i % 2 == 0]
print(mylist)
####### 03 #######
matrix = [[1, 2], [3, 4], [5, 6]]
# 미사용
numsum = 0
for i in matrix:
for j in i:
numsum += j
print(numsum)
# 사용 검색해서 했음
# 컴프리헨션에 += 같은 대입 연산은 직접 못씀
myy = sum(i for j in matrix for i in j)
print(myy)
####### 04 #######
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
# 미사용
mylist = []
for i in numbers:
if numbers.count(i) == 1:
mylist.append(i)
mylist.sort()
print(mylist)
# 사용
mylist = [i for i in numbers if numbers.count(i) == 1]
mylist.sort()
print(mylist)
'''
#####################################################################################
### 미니과제 튜플 7문제 ###
'''
####### 01 #######
3
5
error
####### 02 #######
my_tuple = (1, 2, 3, 4, 5)
my_tuple.index(4)
####### 03 #######
my_tuple = (1, 3, 3, 3, 5, 3)
my_tuple.count(3)
####### 04 #######
(5, 4, 3, 2, 1)
####### 05 #######
my_tuple = (10, 20, 30, 40, 50)
print(my_tuple[1:-1])
####### 06 #######
('hello') # 틀림
# 답
('h', 'e', 'l', 'l', 'o')
####### 06-1 #######
myt = 1,2,3
print(myt)
mylist = []
for i in myt:
mylist.append(i)
print(mylist)
####### 07 #######
my_tuple = (1,2,3)
my_tuple = (1,2,3,4)
print(my_tuple)
####### 08 #######
(1, 2, 1, 2, 3, 4)
####### 09 #######
? 모르겠음
####### 10 #######
(3, 4)
(1, 2)
1 2 3
<class 'tuple'>
####### 11 #######
numbers = (5, 2, 8, 1, 3)
print(max(numbers))
print(min(numbers))
'''
'Sparta > Theory' 카테고리의 다른 글
| [250825] 스파르타코딩 본캠프 15일차 (1) (1) | 2025.08.25 |
|---|---|
| [250822] 스파르타코딩 본캠프 14일차 (1) - Python 04 - dict, def (3) | 2025.08.22 |
| [250820] 스파르타코딩 본캠프 12일차 (1) - Python 02 - if, for (0) | 2025.08.20 |
| [250819] 스파르타코딩 본캠프 11일차 (1) - Python 01 - input, str (3) | 2025.08.19 |
| [250818] 스파르타코딩 본캠프 10일차 (1) - window function, with (1) | 2025.08.18 |