본문 바로가기
프로그래밍/파이썬기초

리스트(list), 반복for문, 조건if, if-else_파이썬 기초

by 조크리 2021. 3. 19.
반응형

파이썬 찐초보! 

 

 

오늘의 목표

 

1. 리스트 활용법 이해하기

2 리스트에 데이터 정의, 변경, 삽입, 삭제 등

3. 약수를 리스트에 저장하기 

 

 

오늘의 핵심은 바로 리스트(list)이다!

 

 

1. 리스트의 정의

 

리스트란 여러 구성 요소들을 한 개로 묶어서 사용하는 것을 말한다.

구성원(구성요소)들로 한 개의 리스트가 구성되며

구성원은 같은 유형이 아니라도 된다. 

 

ex) 집안에 있는 물건들을 나열하여 한 개의 그룹으로 다룬다.

학생들의 성적 데이터를 한 개의 그룹으로 다룬다.

10000개의 정수를 다룬다. 

 

name = ['서울교대', '진주교대', '청주교대']

words = ["make", "go", "let", "get"]

numbers = [1,2,3,4,5]

 

 

2. 리스트의 인덱싱

 

number = [3,4,5,6,7]

 

numbers[1]은 무엇일까? 바로 4이다.

리스트 안의 요소들을 불러올 때는 리스트명[i] 이렇게 써주는데 리스트 안의 항목 인덱스는 0부터 시작한다.

따라서 숫자 3은 0번째, 숫자 4는 1번째 항목이라고 볼 수 있으므로 i를 써줄 때는 항상 이 부분을 염두해야한다.

 

3. 부분 리스트

 

리스트명[시작점:끝점]

리스트명[시작점:]

리스트명[:끝점]

 

number = [3,4,5,6,7]의 경우 

numbers[2:3] 은 무엇일까? 바로 5,6이다.

numbers[3:]은? 6,7이다.

numbers[:2]는? 3,4,5이다. 

 

이처럼 리스트명을 적고 인덱스를 적어주면 인덱스에 해당하는 항목을 불러오는데

이 인덱스가 0부터 시작이라는 것을 염두하고

시작 인덱스, 끝 인덱스를 잘 적어주기만 하면 항목들을 부분적으로 불러 올 수 있다!

 

4. 리스트 데이터 접근

 

변수명 = 리스트명[인덱스]

 

data = numbers[4]

data = words[2]

 

이렇게 data라는 변수를 만들고 리스트명과 원하는 요소의 인덱스를 적어주면 된다!

 

for문에서는

 

for data in words

 

이렇게 기존에 i라고 칭하던 변수명을 원하는 변수명 data로 써주고 in 다음에 오는 범위를 리스트 자체로 써주면 된다!

 

if문에서는

if "make" in words

처럼 내가 찾고 싶은 항목이 리스트 안에 있다면~ 이라는 조건문을 써주면 된다! 

 

 

4-1. 리스트 데이터 변경

 

★예시 1. 

number = [3,4,5,6,7]의 경우 

 

number[4] = 34

이런식으로 바꾸고 싶은 값으로 바꾸어 주면 된다.

 

변경된 리스트는

numbers = [3,4,5,6,34]가 된다. 

 

★예시 2. 

students = ["둘리", "또치", "도우너"] 의 예시를 살펴보자. 

 

students[1] = "마이콜"

이렇게 1번 인덱스에 해당되는 항목을 바꾸고 싶은 항목으로 적어주면

 

변경된 리스트는 

students = ["둘리", "마이콜", "도우너"] 가 된다. 

 

 

 

4-2. 리스트 데이터 삭제

 

★예시 1. 

number = [3,4,5,6,7]의 경우

 

del number[1] 이렇게 적으면 4가 삭제되어

number = [3,5,6,7] 로 변경되고

인덱스도 한 칸씩 앞으로 당겨진다. 

 

 

4-3. 리스트 데이터 추가 

 

★예시 1. 제일 뒤에 삽입하는 방법

number = [3,4,5,6,7]의 경우

 

리스트명.append(값) 함수를 사용한다. 

 

즉, number.append(99) 이렇게 써주면 되고

그 결과로는 

number = [3,4,5,6,7,99] 가 된다!

 

☆예제 1.

어떤 수를 입력받은 뒤 약수를 리스트에 삽입해보자.

 

사용자가 어떤 수를 입력하면 그 어떤 수의 약수를 구하고 약수를 Data = [] 라는 리스트에 차례차례 삽입해보자.

 

코드는 아래와 같고 중요한 것은 for문이다. 

Data=[]라는 빈 리스트를 만들고 for문을 작성하는데

약수를 구하는 for문을 그대로 쓴 뒤 if문 아래에 Data.append(i)를 써주어 그 약수를 Data라는 리스트에 추가시키는 것이다! 

number = int(input("숫자를 입력하세요 : "))

Data = []

for i in range(1, number + 1):
  if (number % i == 0):
    Data.append(i)

print(Data)

 

 

☆예제2. 

예제1를 업그레이드해서 

약수인 것은 Data1 리스트에 넣고 약수가 아닌 것은 Data2 리스트에 넣어보자. 

 

이 경우 아래 코드처럼 Data1과 Data2 빈 리스트를 각각 만들어준 뒤 if-else문을 활용해 리스트에 넣어주면 된다~

number = int(input("숫자를 입력하세요 : "))

Data1 = []
Data2 = []

for i in range(1, number + 1):
  if (number % i == 0):
    Data1.append(i)
  else:
    Data2.append(i)

print("약수는 다음과 같다",Data1)
print("약수가 아닌 수는 다음과 같다", Data2)

 

 

★예시 2. 특정 위치에 삽입하는 경우

number = [3,4,5,6,7]의 경우

 

리스트명.insert(인덱싱, 값) 함수를 사용한다. 

 

즉, number.insert(2, 100) 이렇게 써주면 되고 

그 결과로는

number = number = [3,4,100,5,6,7,99] 가 되며 인덱스는 다시 설정된다!

 

 

5. 다양한 예제 살펴보기 - 진약수 구하기

 

진약수는 자기 자신을 포함하지 않는 진짜 약수라는 의미이다. 

 

따라서 앞의 약수를 구해 리스트에 추가하는 예제를 살짝만 변형하면 된다.

즉, 아래 코드처럼 for문의 range만 바꾸어주면 되는데 자기 자신이 포함되지 않도록 number + 1 부분을 number로만 바꾸어주면 된다!

number = int(input("숫자를 입력하세요 : "))

Data1 = []
Data2 = []
#range를 1부터 시작하여 number까지로 설정!
for i in range(1, number):
  if (number % i == 0):
    Data1.append(i)
  else:
    Data2.append(i)

print("약수는 다음과 같다",Data1)
print("약수가 아닌 수는 다음과 같다", Data2)

 

 

 

오늘의 목표

1. 리스트 활용법 이해하기

2 리스트에 데이터 정의, 변경, 삽입, 삭제 등

3. 약수를 리스트에 저장하기 

 

정리 끝!

 

다음 글에서는 완전수, 과잉수, 부족수 등에 대해 정리해보자!

반응형