글쓰는 개발자

파이썬 기초 문법 4 - list, range 본문

Development/Python

파이썬 기초 문법 4 - list, range

세가사 2021. 2. 13. 15:00
반응형

1. 리스트

파이썬의 리스트는 값으로 이루어진 시퀀스다. 문자열에서 값은 문자이고, 리스트에서는 어떤 타입도 값이 될 수 있다. 리스트는 대괄호로 감싸는 것으로 생성 가능하다. 아래와 같이 문자열 숫자, 그리고 리스트까지 다양한 연속값을 담을 수 있다.

[10, 20, 30, 40]
['forg', 'fish', 'bear']
['spam', 1.0, 7, [10, 20]]
[]

 또한 한번 선언된 리스트는 다음과 같이 변경이 가능하다.

numbers = [1, 2] # [1, 2]
numbers[0] = 3 # [3, 2]

 

2. range함수

range함수는 내부에 값을 넣으면 그 만큼의 range를 만들고 이를 for문을 통해 반복할 수 있다.

for i in range(3):
    print('range')

'''
range
range
range
'''

이 range는 list의 길이와 함께 사용하면 list의 값을 일괄 변경할 때 유용하다.

len = [1, 2, 3]
for i in range(len(numbers)):
	numbers[i] = numbers[i] * 2
 '''
 len = [2, 4, 6]
 '''

 

3. 리스트 연산

리스트는 연산자를 통해 결합할 수 있다.

a = [1, 2, 3]
b = [4, 5]
c = a + b # [1, 2, 3, 4, 5]

혹은 연산자를 통해 리스트를 횟수만큼 반복할 수 있다.

[6] * 4 # [6, 6, 6, 6]
[1, 2] * 2 # [1, 2, 1, 2]

 

4. 리스트 슬라이스

리스트에 슬라이스 연산자도 사용할 수 있다. 맨 아래에 [:]의 경우에는 전체 리스트의 복사본을 만드는 작업을 수행한다. 

numbers = [1, 2, 3, 4, 5, 6]
numbers[1:3] # [2, 3]
numbers[:4] # [1, 2, 3, 4]
numbers[3:] # [4, 5, 6]

numbers[:] # [1, 2, 3, 4, 5, 6]

 

리스트의 복사본을 만드는 이유는 리스트를 다른 변수에 할당할 경우 두개의 변수간의 하나의 리스트를 공유하기 때문이다. 아래는 1, 2의 값을 가진 a라는 리스트를 만들고 이를 b에 할당해 주었는데 b를 수정했음에도 a가 같이 수정되는 것을 확인 할 수 있다. 

a = [1, 2]
b = a
b[0] = 3
print(a) #[3, 2]

만약 b에 a의 복사본을 할당하고 싶다면 리스트 복사(a[:])를 사용해서 b에 값을 할당해야 한다.

a = [1, 2]
b = a[:]
b[0] = 3
print(a) # [1, 2]
print(b) # [3, 2]

 

5. 리스트 메서드

리스트에 새로운 값을 하나씩 추가하기 위해서는 append 함수를 사용할 수 있다.

t = [1, 2, 3]
t.append(4)
print(t) # [1, 2, 3, 4]

 

extend 함수는 리스트를 인수로 받아서 모든 원소 뒤에 추가해준다.

t1 = [1, 2, 3]
t2 = [4, 5]
t1.extend(t2)
print(t1) [1, 2, 3, 4, 5]

 

sort 함수의 경우 리스트를 순서대로 정렬해 준다.

t = [3, 4, 2, 1, 5]
t.sort()
print(t) # [1, 2, 3, 4, 5]
반응형