본문 바로가기
Python

[TIL]Python 기초 실습 문제_25일차(리스트)

by 공부하죠 2024. 5. 8.
반응형

파이선 리스트는 순서가 있고 수정 가능한 자료구조입니다.

리스트는 파이썬에서 가장 자주 사용되는 데이터 구조 중 하나입니다.

여러 항목들 을 담을 수 있는 가변(mutable)한 시퀀스(sequence)입니다.

대괄호 [ ] 를 사용하여( 각 값은 쉼표로 구분 ) 리스트를 만들 수 있습니다.

1. 리스트에 원소 추가

movie_rank 리스트에 "배트맨"을 추가

movie_rank = ["닥터 스트레인지", "스플릿", "럭키"]
movie_rank.append("배트맨")
print(movie_rank)
>>>
['닥터 스트레인지', '스플릿', '럭키', '배트맨']

 

 "슈퍼맨"을 "닥터 스트레인지"와 "스플릿" 사이에 추가

리스트의 'insert(인덱스, 원소)' 메서드를 사용하면 특정 위치에 값을 끼어넣기

movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
movie_rank.insert(1, "슈퍼맨")
print(movie_rank)
>>>
['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']

 

2. 리스트 슬라이싱

리스트 슬라이싱은 리스트의 일부분을 추출

파이썬은 맨 처음을 가리키는 인덱스가 0

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 1. 일부분만 추출하기
print(my_list[2:5]) # 출력: [3, 4, 5]

# 2. 시작 인덱스 생략하기 (처음부터 추출)
print(my_list[:5]) # 출력: [1, 2, 3, 4, 5]

# 3. 끝 인덱스 생략하기 (끝까지 추출)
print(my_list[5:]) # 출력: [6, 7, 8, 9, 10]

# 4. 음수 인덱스 사용하기 (뒤에서부터 추출)
print(my_list[-3:]) # 출력: [8, 9, 10]
# 5. 간격 설정하기 (특정 간격으로 추출)

print(my_list[1:9:2]) # 출력: [2, 4, 6, 8]

# 6. 리스트 전체를 복사하기
copy_of_list = my_list[:]
print(copy_of_list)

# 7. 리스트를 거꾸로 뒤집기
[SCC] 파이썬의 뼈대 : 리스트, 튜플, 딕셔너리 9
reversed_list = my_list[::-1]
print(reversed_list)
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(nums[1::2]) # 짝수만
print(nums[::2])  # 홀수만
>>>
[2, 4, 6, 8, 10]
[1, 3, 5, 7, 9]

 

price 변수에는 날짜와 종가 정보가 저장돼 있다. 날짜 정보를 제외하고 가격 정보만을 출력하라.

price = ['20180728', 100, 130, 140, 150, 160, 170]
print(price[1:])
>>>
[100, 130, 140, 150, 160, 170]

 

3. 리스트의 인덱싱(Indexing)

 

리스트에서 특정 값에 접근하거나 일부분을 추출하는 방법

인덱싱: 리스트에서 특정 위치의 값에 접근하는 방법[ ]

# 리스트 생성
numbers = [1, 2, 3, 4, 5]
# 첫 번째 요소에 접근하기
first_number = numbers[0]
print("First number:", first_number)
# 두 번째 요소에 접근하기
second_number = numbers[1]
print("Second number:", second_number)
# 마지막 요소에 접근하기
last_number = numbers[-1]
print("Last number:", last_number)
# 음수 인덱스를 사용하여 역순으로 요소에 접근하기
second_last_number = numbers[-2]
print("Second last number:", second_last_number)
>>>
First number: 1
Second number: 2
Last number: 5
Second last number: 4
interest = ['삼성전자', 'LG전자', 'Naver']
print(interest[0], interest[2])
>>>
삼성전자 Naver

 

4. 리스트 값 삭제

리스트에서 특정 값을 삭제하거나 전체를 삭제하는 방법

my_list = [1, 2, 3, 4, 5]
# 리스트의 항목 삭제
del my_list[0]
print("첫 번째 항목 삭제 후 리스트:", my_list)

my_list.remove(3)
print("네 번째 항목 삭제 후 리스트:", my_list)

# 리스트 내 값들의 모든 항목 제거
my_list.clear()
print("모든 항목 제거 후 리스트:", my_list) 
>>>
첫 번째 항목 삭제 후 리스트: [2, 3, 4, 5]
네 번째 항목 삭제 후 리스트: [2, 4, 5]
모든 항목 제거 후 리스트: []

 

5. 리스트 값 변경

인덱싱을 활용하여 특정 위치의 리스트 값을 다른 값으로 변경

my_list = [1, 2, 3, 4, 5]
my_list[2] = 9
print(my_list) 
>>>
[1, 2, 9, 4, 5]

 

중첩된 리스트에서 인덱싱하고 값 변경

# 중첩된 리스트에서 인덱싱하고 값 변경
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
nested_list[1][0]= 100
print(nested_list)
>>>
[[1, 2, 3], [100, 5, 6], [7, 8, 9]]

 

리스트가 실전에서 사용되는 예시

# 리스트를 사용한 간단한 데이터 계산 예시
grades = [85, 92, 88, 78, 90]
average_grade = sum(grades) / len(grades)
print("평균 성적:", average_grade)
>>>
평균 성적: 86.6

 

 

6. 리스트 연산

합치기

lang1과 lang2 리스트가 있을 때 lang1과 lang2의 원소를 모두 갖고 있는 langs 리스트를 만들어라.

lang1 = ["C", "C++", "JAVA"]
lang2 = ["Python", "Go", "C#"]
langs = lang1 + lang2
print(langs)
>>>
['C', 'C++', 'JAVA', 'Python', 'Go', 'C#']
nums = [1, 2, 3, 4, 5]
print(sum(nums))
>>>
15

데이터의 개수를 구하기

cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "라면", "팥빙수", "김치전"]
print(len(cook))
>>>
10

리스트의 평균 구하기

nums = [1, 2, 3, 4, 5]
average = sum(nums) / len(nums)
print(average)
>>>
3

 

7. join 메서드

interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
print("♪".join(interest))
>>>
삼성전자♪LG전자♪Naver♪SK하이닉스♪미래에셋대우
interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
print("\n".join(interest))
>>>
삼성전자
LG전자
Naver
SK하이닉스
미래에셋대우

 

8. 리스트의 다양한 메서드(Methods)

append() : 리스트에 항목을 추가합니다.

extend() : 리스트에 다른 리스트의 모든 항목을 추가합니다.

insert() : 리스트의 특정 위치에 항목을 삽입합니다.

remove() : 리스트에서 특정 값을 삭제합니다.

pop() : 리스트에서 특정 위치의 값을 제거하고 반환합니다.

index() : 리스트에서 특정 값의 인덱스를 찾습니다.

count() : 리스트에서 특정 값의 개수를 세어줍니다.

sort() : 리스트의 항목들을 정렬합니다.

reverse() : 리스트의 항목들을 역순으로 뒤집습니다.

# 리스트 생성
my_list = [1, 2, 3, 4, 5]

#리스트의 다양한 메서드(Methods)
my_list.append(6) # 리스트에 새로운 항목 추가
print(my_list) # 출력: [1, 2, 3, 4, 5, 6]

my_list.extend([7, 8, 9]) # 다른 리스트의 모든 항목을 추가
print(my_list) # 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9]

my_list.insert(2, 10) # 두 번째 위치에 값 삽입
print(my_list) # 출력: [1, 2, 10, 3, 4, 5, 6, 7, 8, 9]

my_list.remove(3) # 값 3 삭제
print(my_list) # 출력: [1, 2, 10, 4, 5, 6, 7, 8, 9]

popped_value = my_list.pop(5) # 다섯 번째 위치의 값 제거하고 반환
print(popped_value) # 출력: 6

print(my_list) # 출력: [1, 2, 10, 4, 5, 7, 8, 9]

print(my_list.index(4)) # 출력: 3 (값 4의 인덱스)

print(my_list.count(7)) # 출력: 1 (값 7의 개수)

my_list.sort() # 리스트 정렬
print(my_list) # 출력: [1, 2, 4, 5, 7, 8, 9, 10]

# 내림차순으로 리스트 정렬 예시
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
numbers.sort(reverse=True)
print("내림차순으로 정렬된 리스트:", numbers) 

my_list.reverse() # 리스트 역순으로 뒤집기
print(my_list) # 출력: [10, 9, 8, 7, 5, 4, 2, 1]

 

split() : 문자열을 여러개로 나눔

string = "삼성전자/LG전자/Naver"
interest = string.split("/")
print(interest)
>>>
['삼성전자', 'LG전자', 'Naver']

 

[Tip] ‘반환’이라는 표현을 함수의 결과 값을 밖으로 끄집어 낸다라는 것을 의미

여기서는 ‘결과 값을 얻어냈다’ 정도로만 이해하셔도 충분

 


이번 글은 가단한 파이썬 라스트 실습을 위주로 정리했습니다.

파이썬을 기초부터 공부하고 싶다면 여기를 클릭🔥

 

반응형