본문 바로가기

PYTHON/초보자를 위한 파이썬 300제

04. 파이썬 리스트 051 ~ 060

리스트가 무엇인지만 살짝 기억나고 관련된 문법은 하나도 모르는 바보다. 

(나에 대한 분노,,,)

 

https://wikidocs.net/7023

 

051 ~ 060

.answer {margin-top: 10px;margin-bottom: 50px;padding-top: 10px;border-top: 3px solid LightGray;bo…

wikidocs.net

 

# 2024 02 19 MON
# 051
# 영화 제목을 movie_rank 이름의 리스트에 저장
movie_rank = ["doctor strange", "split", "lucky"]
print(movie_rank)

# 052
# movie_rank 리스트에 "batman"을 추가
movie_rank.append("batman")
print(movie_rank)

# 053
# movie_rank 리스트에 'superman'을 'doctor strange' 와 'split' 사이에 추가
movie_rank.insert(1, "superman")
print(movie_rank)

# 054
# movie_rank 리스트에서 'lucky' 삭제
movie_rank.remove("lucky")
print(movie_rank)

# 055
# movie_rank 리스트에서 'split' 과 'batman' 삭제
del movie_rank[3]
del movie_rank[2]
print(movie_rank)

# 056
# lang1 과 lang2 리스트 합치기
lang1 = ["C", "C++", "JAVA"]
lane2 = ["Python", "Go", "C#"]
lang = lang1 + lane2
print(lang)

# 057
# 리스트에서 최댓값과 최솟값 출력
nums1 = [1, 2, 3, 4, 5, 6, 7]
print("min : %d" % min(nums1))
print("max : %d" % max(nums1))

# 058
# 리스트의 합 출력
nums2 = [1, 2, 3, 4, 5]
total1 = nums2[0] + nums2[1] + nums2[2] + nums2[3] + nums2[4]
total2 = sum(nums2)
print(total1, total2)

# 059
# 리스트에 저장된 데이터 개수 출력
cook = ["피자", "김밥", "만두", "양념치킨", "족발", "피자", "김치만두", "쫄면", "소시지", "라면", "팥빙수", "김치전"]
print(len(cook))

# 060
# 리스트의 평균 출력
nums3 = [1, 2, 3, 4, 5]
average = sum(nums3) / len(nums3)
print(average)

 

051 ~ 060 출력 결과

 

내가 몰랐던 문법

 

1. 리스트 

리스트는 순서가 있고 수정 가능한 데이터 타입이다. 대괄호 안에 쉼표로 구분된 값들을 넣어서 리스트를 생성한다. 빈 리스트를 생성하려면 '[]'를 사용한다. 리스트는 각 항목을 0부터 시작하는 인덱스를 사용해 접근한다. 음수 인덱스를 사용하면 리스트의 끝에서부터 역순으로 접근할 수 있다.

 

2. 리스트 수정

리스트의 항목은 변경하거나 추가할 수 있다. 인덱스를 사용하여 특정 항목에 접근하고 값을 할당하여 수정한다. 

 

2-1. append()

리스트의 '끝'에 새로운 항목을 추가할 때 사용한다. 한 번에 '한 개'의 원소만을 추가한다. 

 

2-2. insert()

리스트의 insert(인덱스, 추가할 원소) 메서드를 사용하면 특정 위치(인덱스)에 값을 추가할 수 있다. 한 번에 '한 개'의 원소만을 추가한다. 

 

2-3. extend()

리스트에 다른 리스트나 이터러블 객체의 '모든' 원소를 추가하는 메서드이다. 이터러블(iterable) 객체란 반복 가능한 객체로 리스트, 튜플, 문자열 등이 해당된다. 이 메서드를 사용하면 한 번에 '여러 개'의 원소를 추가할 수 있지만 원소를 개별적으로 전달하는 방식으로는 사용할 수 없다. 

 

2-4. remove()

리스트에서 특정 값을 가진 '첫 번째' 원소를 제거한다. 제거할 값을 메서드의 인자로 전달하고 만약에 리스트에 제거할 값이 여러 개가 있다면, 첫 번째로 나타나는 값만이 제거된다. 한 번에 하나의 원소만을 제거하는 방식이다. 

numbers = [1, 2, 3, 2, 4]
numbers.remove(2)
print(numbers)  # 출력: [1, 3, 2, 4]

 

2-5. del

'del' 키워드는 리스트에서 특정 인덱스의 원소를 제거한다. del 리스트[제거할 원소의 인덱스]의 형식으로 사용한다. 리스트의 슬라이스를 삭제할 수도 있다. del 리스트[제거할 시작 인덱스 : 제거할 끝 인덱스] 형태이다. 한 번에 하나의 원소나 슬라이스만을 제거할 때 사용한다. 리스트에서 어떤 값을 삭제하게 되면 남은 값들은 새로 인덱싱 되므로 여러 값을 삭제하고 싶을 때는 어떤 값이 먼저 삭제된 후 남은 원소들에 대해서 순서(인덱스)를 새로 고려한 후 삭제해야 한다. 

 

3. 리스트 연산 

리스트를 연결하기 위해 '+' 연산자를 사용한다. 리스트의 '+' 연산자를 사용할 때에는 두 리스트를 동시에 참조하게 되는 것이 아니라 두 리스트가 합쳐진 새로운 리스트가 반환되는 것이다. 이렇게 합쳐진 새로운 리스트에는 첫 번째 리스트의 모든 원소가 먼저 오고, 그 후에 두 번재 리스트의 모든 원소가 순서대로 이어진다. 

리스트를 반복하기 위해서는 '*' 연산자를 사용한다. '*' 연산자를 사용하면 반복된 새로운 리스트가 반환되는 것이 아니라 기존 리스트를 여러 번 반복하여 참조하는 것이다. 

 

4. 최댓값, 최솟값

max() : 인자로 전달된 값 중 가장 큰 값을 반환 

min() : 인자로 전달된 값 중 가장 작은 값을 반환

 

5. 리스트 합

리스트의 sum() 함수는 리스트의 모든 원소의 합을 계산한다. 리스트의 원소가 '숫자'일 경우에만 사용할 수 있다. 

 

6. 리스트 원소 개수 

리스트의 len() 함수는 리스트의 길이, 즉 원소의 개수를 반환한다. '모든' 종류의 리스트에 대해서 사용할 수 있다. 

 

7. 리스트 평균

평균을 구하렴녀 합계를 구하고 원소 개수로 나누면 된다. 따라서 sum() 함수를 이용해 합을 구하고 len() 함수를 이용해 원소의 개수를 구해 평균을 구할 수 있다. 

 

8. 함수와 메서드

함수는 독립적으로 정의되어 있는 코드 블록으로, 특정 작업을 수행하는 일련의 명령문들을 포함한다. 일반적으로 함수는 입력값을 받아서 결과값을 반환하는 형태로 사용된다. 

메서드는 객체에 속한 함수로, 특정 객체의 상태를 변경하거나 객체에 대한 작업을 수행하는 함수이다. 메서드는 특정한 클래스에 속해있으며, 클래스의 인스턴스에 대해 호출된다. 메서드는 클래스의 일부이므로 클래스의 인스턴스를 생성하여 호출할 수 있다.