2023-07-29 20:35:57
728x90
728x90

리스트와 반복문


리스트(list)란 사전적 의미는 '목록'이며, 파이썬에서 리스트의 의미는 여러가지 자료를 저장할 수 있는 자료이다. 지금까지 활용한 숫자나 문자, 수식 등이 개별적인, 독립적인 '자료'였다면 리스트는 이러한 자료들을 모아서 사용할 수 있게 해주는 특별한 형태의 자료를 말한다. 리스트는 대괄호[ ]내부에 여러 종류의 자료를 넣어서 선언한다. 선언한 리스트를 출력하면 내부의 자료를 모두 출력한다.

 

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

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

리스트 안에 있는 요소를 각각 사용하려면 리스트 이름 바로뒤에 대괄호[ ]를 입력하고, 자료의 위치를 나타내는 숫자를 입력한다. 요소가 들어가 있는 위치는 일반적으로 현실에서는 숫자를 1부터 세지만 문자열 때처럼 파이썬은 0부터 센다. 이때 리스트 기호인 대괄호[ ] 안에 들어간 숫자를 인덱스(index)라고 부른다.

>>>list_a = [273, 32, 103, "문자열", True, False]
>>>list_a[0]
273
>>>list_a[1]
32
>>>list_a[2]
103
>>>list_a[1:3]
[32,103]

list_a[1:3]의 [1:3]은 1번째 글자부터 3번째 글자를 선택하는 것이 아니라 그 앞에 숫자,2번째 글짜까지 선택한다.

 

리스트의 특정 요소는 변경할 수도 있다. 다음과 같이 입력하면 "변경"이라는 문자열을 0번째에 대입하면서 요소를 변경한다.

>>>list_a = [273, 32, 103, "문자열", True, False]
>>>list_a[0] = "변경"
>>>list_a
['변경', 32, 103, '문자열', True, False]

리스트는 위와 같은 일반적인 사용법 외에도 다양하게 사용할 수 있는 방법이 많다.

 

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

>>>list_a = [273, 32, 103, "문자열", True, False]
>>>list_a[-1]
False
>>>list_a[-2]
True
>>>list_a[-3]
'문자열

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

아래와 같은 리스트가 있다고 할때 list_a[3]을 지정하면 "문자열"을 꺼내오고 list_a[3][0]을 지정하면 3번째에서 가져온 "문자열"에서 다시 0번째를 가져와 출력한다.

>>>list_a = [273, 32, 103, "문자열", True, False]
>>>list_a[3]
'문자열'
>>>list_a[3][0]
'문'

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

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

 

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

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

len() 함수는 괄호 내부에 문자열을 넣으면 문자열의 글자수(=길이)를 세어 주지만, 리스트 변수를 넣으면 요소의 개수를 세어준다.

>>>list_a = [1, 2, 3]
>>>list_b = [4, 5, 6]
>>>print("list_a + list_b =", list_a + list_b
list_a + list_b = [1, 2, 3, 4, 5, 6]
>>>print(list_a * 3 =", list_a * 3
list_a * 3 = [1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>print("len(list_a) =", len(list_a)
len(list_a) = 3

 

 

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

리스트에 요소를 추가할 때는 두 가지 방법이 있다. 한가지는 append() 함수를 활용하는 것으로 리스트 뒤에 요소를 추가한다. 다른 한가지는 insert() 함수를 활용하는 것으로 리스트의 중간에 요소를 추가한다.

 

리스트명.append(요소)

리스트명.insert(위치, 요소)

>>>list_a = [1, 2, 3]
>>>list_a.append(4)
>>>list_a.append(5)
>>>print(list_a)
[1, 2, 3, 4, 5]
>>>list_a.insert(0, 10)
>>>print(list_a)
[10, 1, 2, 3, 4, 5]

한번에 여러 요소를 추가하고 싶을때는 extend() 함수를 사용한다. extend() 함수는 매개변수로 리스트를 입력하는데, 원래 리스트 뒤에 새로운 리스트의 요소를 모두 추가해준다.

>>>list_a = [1, 2, 3]
>>>list_a.extend([4, 5, 6])
>>>print(list_a)
[1, 2, 3, 4, 5, 6]

 

 

리스트에 요소 제거하기

파이썬은 리스트에서 요소를 제거하는 방법이 많지만 리스트의 ㅇ요소를 제거하는 방법은 크게 두 가지로 나뉜다.

1. 인덱스로 제거하기

2. 값으로 제거하기

 

  • 인덱스로 제거하기: del 키워드, pop()
    인덱스로 제거한다는 것은 요소의 위치를 기반으로 요소를 제거하는 것이다

    del 리스트명[인덱스]

    pop() 함수 또한 제거할 위치에 있는 요소를 제거하는데, 매개변수를 입력하지 않으면 -1이 들어가는 것으로 취급해서 마지막 요소를 제거한다.

    리스트명.pop(인덱스)
>>>list_a = [0, 1, 2, 3, 4, 5]
>>>del list_a[1]
>>>print("del list_a[1]:", list_a)
del list_a[1]: [0, 2, 3, 4, 5]
>>>list_a.pop(2)
>>>print("pop(2):", list_a)
pop(2): [0, 2, 4, 5]

추가로 del 키워드를 사용할 경우에는 범위를 지정해 리스트의 요소를 한꺼번에 제거할 수도 있다.[3:5]을 지정하면 마지막 요소를 포함하지 않는다는 것을 기억해주자.

 

값으로 제거하기: remove()

두 번째 방법은 값으로 제거하는 것이다. 말 그대로 '리스트 내부에 있는 2를 제거해 주세요'처럼 값을 지정해서 제거하는것이다. remove() 함수로 지정한 값이 리스트 내부에 여러 개 있어도 가장 먼 저 발견되는 하나만 제거한다

>>>list_c = [1, 2, 1, 2]
>>>list_c.remove(2)
>>>list_c
[1, 1, 2]

 

 

모두 제거하기: clear()

리스트 내부의 요소를 모두 제거할 때는 clear() 함수를 사용한다.

>>>list_d = [0, 1, 2, 3, 4, 5]
>>>list_d.clear()
>>>list_d
[] ->요소가 모두 제거됨

 

 

리스트 정렬하기: sort()

리스트 요소를 정렬하고 싶다면 sort() 함수를 사용한다. 기본 오름차순 정렬이다.

>>>list_e = [52, 273, 103, 32, 275, 1, 7]
>>>list_e.sort()
>>>list_e
[1, 7, 32, 52, 103, 273, 275]

 

 

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

in 연산자는 특정 값이 리스트 내부에 있는지 확인하는 연산자이다. 반대로 not in 연산자는 리스트 내부에 해당 값이 없는지 확인하는 연산자이다.

>>>list_a = [273, 32, 103, 57, 52]
>>>273 in list_a #in 연산자
True
>>>99 in list_a
False
>>>273 not in list_a #not in 연산자
False
>>>99 not in list_a
True

 

 

for 반복문

컴퓨터에 반복을 지시하는 방법이 바로 반복문이다. 컴퓨터에 반복 작업을 시키는 방법은 간단하다. 반복할 작작 내용이 있는 코드를 '복사'하고 ,원하는 만큼 붙여넣기 하면된다. 하지만 100번, 1000번 또는 무한하게 반복 작업하고 싶을때 코드를 계속 붙여넣기 하는 것은 무리이다. 이럴때 반복문을 사용하면 매우 편리하다.

>>>for i in range(100): # range(100)은 반복에 사용할 수 있는 자료
print("출력")

 

 

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

for 반복문의 기본 형태는 다음과 같다.

 

for 반복자 in 반복할 수 있는 것:

    코드

 

반복할 수 있는 것에는 문자열, 리스트, 딕셔너리, 범위등이 있다. 리스트와 조합해서 사용해보자.

>>>array = [273, 32, 103, 57, 52]
>>>for element in array:
>>>print(element)
273
32
103
57
52

for  반복문은 리스트에 있는 요소 하나하나가 element라는 변수에 들어가며 차례차례 반복하게 된다. print() 함수로 element를 출력하므로 리스트의 요소를 차례차례 출력하게 되는 것이다.

728x90