본문 바로가기
개발자모드/혼자공부하는파이썬

[파이썬#11] 리스트(List) 추가, 리스트 제거와 for 반복문

by 요니L 2022. 7. 4.

 


리스트(List)의 의미

파이썬에서 리스트의 의미는 여러 가지 자료를 저장할 수 있는 자료이다. 숫자나 문자, 수식 등이 독립적인 자료였다면 리스트는 이러한 자료들을 모아서 사용할 수 있게 해주는 특별한 형태의 자료를 말한다.

 

 


리스트 선언하고 요소에 접근하기

파이썬에서 리스트를 생성하는 방법은 대괄호[]에 자료를 쉼표로 구분해서 입력한다. 대괄호[] 내부에 넣는 자료를 요소라고 하고, 영어로는 element라고 부른다. 

 

예) [요소, 요소, 요소... ]

 

리스트는 한 가지 자료형만 구성할 수도 있고, 여러 종류의 자료형도 구성할 수 있다. 프롬프트에 리스트를 입력하면 리스트 내부의 자료를 모두 출력하는 것을 확인할 수 있다. 

 

예)

 

아래와 같이 리스트를 선언했다고 해보자.

list_a = [273, 32, 103, "문자열", True, False]

 

list_a 273 32 103 문자열 True False
[0] [1] [2] [3] [4] [5]

일반적으로 숫자를 1부터 세지만, 파이썬은 0부터 센다. 

 

이때 리스트 기호 대괄호[] 안에 들어가는 숫자를 인덱스라고 부른다. 요소인덱스 용어는 꼭 기억하도록 하자.

 

예)

 

↘ 리스트의 특정 요소는 변경도 가능 

 

예) list_a[0] 요소의 값 변경

 

↘ 리스트의 다양한 활용

1) 대괄호 안에 음수를 넣어 뒤에서부터 요소를 선택할 수 있다. 

예)

 

2) 리스트 접근 연산자를 이중으로 사용할 수 있다.

예) list_a[3]을 지정하면 "문자열"을 꺼내오고, list_a[3][0]지정하면 "문자열"에서 다시 0번째를 가져와 출력한다.

 

3) 리스트 안에 리스트를 사용할 수 있다.

예) 중첩 리스트

 

 


리스트 연산자: 연결(+), 반복(*), len()

문자열과 리스트는 굉장히 비슷한 자료형으로 사용할 수 있는 연산자와 함수가 비슷하다.

#리스트 선언
list_a = [1,2,3]
list_b = [4,5,6]
#기본연산자
print("#기본연산자")
print("list_a=", list_a, ", list_b=" , list_b)
print("list_a + list_b = " , list_a + list_b)
print("list_a * 3 = " , list_a * 3)
print()
#함수
print("#길이구하기")
print(len(list_a))
print(len(list_b))

[실행결과]

문자열 연결 연산자(+)를 사용해서 list_a와 list_b의 자료를 연결하고, 문자열 반복 연산자(*)를 사용해서 list_a의 자료를 3번 반복하였다. 그리고 len() 함수를 이용하여 리스트 변수의 요소의 개수를 출력하였다.

 

 


리스트에 요소 추가하기: append, insert

리스트명.append(요소)  → append() 함수는 리스트의 맨 뒤에 요소를 추가
리스트명.insert(위치, 요소) → insert() 함수는 괄호 안에서 정해 준 위치에 요소를 삽입
리스트명.extend([7,8,9]) → extend() 함수는 리스트의 맨 뒤에 한 번에 여러 요소를 추가

 

리스트에 요소 추가하기

 

#리스트 선언
list_a = [1,2,3]
#리스트 맨 뒤에 요소 추가
print("#리스트 맨 뒤에 요소 추가 - append(요소)")
list_a.append(4)
list_a.append(5)
print(list_a)
#리스트 중간에 요소 추가
print("#리스트 중간에 요소 추가 - insert(위치, 요소)")
list_a.insert(0,10)
print(list_a)
#리스트 한번에 여러 요소 추가
print("#리스트 한번에 여러 요소 추가 - extend(요소)")
list_a.extend([7,8,9])
print(list_a)

[실행결과]

 

 


리스트 연결 연산자와 요소 추가의 차이

리스트 연결 연산자(list_a + list_b) 만으로 list_a에 어떠한 영향도 주지 않는다. 하지만 extend() 함수를 사용하면 list_a에 직접적으로 영향을 준다.

 


리스트 요소 제거하기

↘인덱스로 제거하기- del, pop

인덱스로 제거한다는 것은 요소의 위치를 기반으로 제거하는 것이다. del 키워드 or pop() 함수를 사용한다.

del 리스트명[인덱스]
리스트명.pop(인덱스)

[실행결과]

 

 

del 키워드 사용 시 범위를 지정해서 리스트의 요소를 한꺼번에 제거할 수도 있다. 단, 마지막 요소는 포함되지 않는다!

범위의 한쪽을 입력하지 않으면 지정한 위치를 기준으로 한쪽을 전부 제거할 수 있다. 

[:3]을 지정하면 3을 기준(3번째는 불포함)으로 왼쪽을 모두 제거한다.

[3:]을 지정하면 3을 기준(3번째 포함)으로 오른쪽을 모두 제거한다.

 

 

↘값으로 제거하기 - remove

리스트.remove()

remove() 함수로 지정한 값이 리스트 내부에 여러 개 있어도 가장 먼저 발견되는 하나만 제거한다. 

 

↘모두 제거하기 - clear

리스트.clear()

프로그래밍 언어에서는 내부에 있는 모건 것을 제거할 때 항상 clear라는 이름을 사용한다.

 

 

 


리스트 내부에 있는지 확인하기 - in / not in 연산자

 

in 리스트 → 특정 값이 리스트 내부에 있는지 확인
not in 리스트 → 특정 값이 리스트 내부에 없는지 확인

 

 


for 반복문

 

for 반복자 in 반복할 수 있는 것:
    반복하고 싶은 코드 기술

 

"출력"이란 단어를 5번 반복하고 싶다고 하자. for문을 이용하여 다음과 같이 작성할 수 있다. 

 

 


for 반복문 - 리스트와 함께 사용하기

 

for 반복문과 리스트

[실행결과]

 

for 반복문은 리스테에 있는 요소 하나하나가 element라는 변수에 들어가며, 차례차례 반복하게 된다. 

 


<연습문제1>

다음 빈칸을 채워서 실행결과처럼 숫자를 하나하나 모두 출력해보자.

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

[실행결과]

 

<연습문제2>

다음 코드의 빈칸을 채워서 실행결과처럼 출력되도록 완성해보자. 

numbers = [1,2,3,4,5,6,7,8,9]
output = [ [],[],[] ]

for number in numbers:
        output[                        ].append(number)

print(output)    

[실행결과]

 

여기까지.

 

 

 

댓글