Python Basic Syntax - list(1)

Page content

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

본 포스트에서는 짧게 list를 만드는 법과, 값을 추가하는 것에 대해 작성합니다.

I. list 개요

list는 순서는 순서가 있는 집합이며, [] 형태를 가집니다. list는 (integer, float, string, etc) 등으로 구성되는데, 서로 다른 데이터 값이 들어올 수도 있다. 아래 코드를 보자.

# empty list
my_list = []

# 숫자형 list
num_list = [1, 2, 3]

# 문자형 list
chr_list = ['A', 'B', 'C']

리스트는 또다른 리스트를 포함할 수 도 있다. 이것을 A nested list라고 부른다.

nested_list = ['mouse', [1, 2, 3], ['가']]

II. list 접근

우선 크게 2가지 방법이 있다.

(1) list index

리스트가 []으로 구성되어 있는 것은 배웠다. 리스트에 안에 있는 것은 item이라고 부른다.

우선 아래코드로 리스트 인덱싱을 확인해보자.

# list indexing
index_list = ['p', 'r', 'o', 'b', 'e']
# output: p
print(index_list[0])
p
# output: e
print(index_list[4])
e

이번에는 nested list 인덱싱 하는 방법을 알아보자.

n_list = ['Good', [2, 0, 1, 5]]
print(n_list)
['Good', [2, 0, 1, 5]]
# 먼저 `Good`을 출력한다. 
print(n_list[0])

# 0을 출력한다. 
print(n_list[1][1])
Good
0
  • 주의: Indexing을 할 때에는 integer 타입만 올 수 있다.
print(n_list[1][1.0])
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-13-a1de7f8766bd> in <module>()
----> 1 print(n_list[1][1.0])


TypeError: list indices must be integers or slices, not float

(2) Negative Indexing

이번에는 음수를 통해서 인덱싱을 해본다.

# list indexing
index_list = ['p', 'r', 'o', 'b', 'e']

print(index_list[-1]) # output: e
print(index_list[-2]) # output: b
e
b





list
List indexing in Python

List indexing in Python

위 이미지대로 indexnegative index에 따라 접근 방법이 달라지니 참고하기를 바란다.

III. list에 값 추가하기

이번에는 간단하게 값을 추가하는 것을 배우도록 합니다. 값을 추가하는 방법은 크게 2가지가 있습니다. (append & extend)

(1) append

item을 하나씩 추가할 때는 append를 사용합니다.

temp = [2, 4, 6]

# 8을 추가합니다. 
temp.append(8)
print(temp)
[2, 4, 6, 8]

(2) extend

[2,4,6,8]을 담고 있는 temp10, 12, 14을 추가하도록 합니다.

temp.extend([10, 12, 14])
print(temp)
[2, 4, 6, 8, 10, 12, 14]

특정 변수를 만들어서 대입하면 보다 프로그래밍한 코드를 짤 수 있고, 실무에서는 이렇게 변수를 대입하는 것이 일반적입니다.

add_temp = [16, 18, 20, 22]
temp.extend(add_temp)
print(temp)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22]

만약, extend 대신에 append 함수를 쓰면 어떻게 될까요?

temp = [2, 4, 6]
add_temp = [16, 18, 20, 22]
temp.append(add_temp)
print(temp)
[2, 4, 6, [16, 18, 20, 22]]

nested list 형태로 반환되는 것을 볼 수 있습니다.

(3) 연산자 활용한 값 추가하기

연산자를 활용하여 두개의 다른 리스트를 합칠 수가 있습니다. 이러한 것을 concatenation(연결 연산자)이라고 부릅니다.

# Concatenating and repeating lists
# + 연산자
temp = [1, 3, 5]
print(temp + [9, 7, 5])

# * 연산자
print(["repeat"] * 5)
[1, 3, 5, 9, 7, 5]
['repeat', 'repeat', 'repeat', 'repeat', 'repeat']

(4) insert()을 활용한 값 추가

insert() 함수를 사용하면 list[] 특정 위치에 값을 넣을 수 있다. [1, 5] 사이에 [3]을 추가해보자.

insert(index, object) 순으로 작성하면 된다.

즉, object에 해당하는 3이 들어가는 위치는 두번째이고, 파이썬 문법으로 [1]이 되니, insert(1, 3)을 입력한다.

temp = [1, 5]
temp.insert(1, 3)
print(temp)
[1, 3, 5]

IV. 그 외 list와 관련된 함수

지금까지 배운 함수는 append, extend, insert 정도가 되는 것 같습니다.

그러나 이 외에도 remove, pop, clear, index, count, sort, reverse, copy 등의 함수가 있습니다.

다음 시간에는 슬라이스와 삭제하는 방법에 대해 다루도록 한다.

Reference

출처: https://docs.python.org/3/tutorial/datastructures.html