«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Code IT

Python - list 본문

Python & Django

Python - list

Codit 2019. 1. 30. 22:53
# list는 값의 나열이다. 순서가 존재하며, 여러 종류의 값을 담을 수 있다.
# 또한 문자열과 마찬가지로 0 부터 시작하는 인덱스가 존재하며, 슬라이싱도 가능하다.
# 리스트 타입의 변수는 대괄호([])를 이용해 만들 수 있다.

# 대괄호([])를 이용해 colors 리스트 변수를 만들었다.
colors = ['red', 'green', 'gold']
print(colors)

# 리스트에 값을 추가하려면 list변수.append(값) 을 사용한다.
# list 변수에 .append를 사용하면 리스트 변수의 가장 끝 인덱스에 값이 추가된다.
colors.append("blue")
print(colors)

# 만약, 가장 끝 인덱스가 아닌 처음이나 중간에 값을 넣으려면, insert(index, 값)을 사용한다.
# red, green, gold, blue
colors.insert(2, "black")
print(colors) # [red, green, black, gold, blue]

# 리스트에 다른 리스트의 값을 풀어서 넣을 필요가 있을 때, list변수.extend(리스트 변수)를 사용한다.
colors.extend(["white", "gray"])
print(colors) # [red, green, black, gold, blue, white, gray]

# list 에 값을 더할 때, append나 insert를 사용할 수도 있지만, 더하기 연산자(+)를 사용할 수도 있다.
# 단, +를 사용할때 넘겨줄 값은 일반 값이 아닌 List 타입의 변수 혹은 값을 주어야만 한다.
colors += ["red"] # colors = colors + ["red"]
print(colors) # [red, green, black, gold, blue, white, gray, red]
# 엇! red가 가장 첫 인덱스, 가장 끝 인덱스에 중복되어 들어갔다.
# 리스트 타입의 변수는 값의 중복을 고려하지 않는다. 그저 할당된 값만 리스트에 넣어준다.

# "red" 라는 값은 리스트의 몇번 인덱스에 존재할까?
#####################################################
# [red, green, black, gold, blue, white, gray, red] #
# [0,   1,     2,     3,    4,    5,     6,    7  ] #
#####################################################
# index()는 주어진 값이 위치한 가장 첫 번째 인덱스를 돌려준다.
red_index_of_list = colors.index("red")
print(red_index_of_list) # 0

# 존재하지 않는 값을 준다면, Runtime Error (실행 에러)가 발생한다.
# ValueError: 'yellow' is not in list
# index_of_list = colors.index("yellow")
# print(index_of_list)

# 만약, 가장 마지막에 있는 "red"를 가져오려면 어떻게 해야 할까?
# index(값, 시작_인덱스)
# index는 주어진 값을 찾을 때 항상 0번 인덱스부터 시작한다.
# 아래 처럼 colors.index("red", 1) 이라고 작성하면, 탐색을 1번 인덱스 부터 시작한다.
red_index_of_list = colors.index("red", 1)
print(red_index_of_list) # 7

# "red" 라는 값이 아래와 같이 세 번 있을 때 colors.index("red", 1) 의 값은 3이 된다.
###################################################
# [red, green, red, gold, blue, white, gray, red] #
# [0,   1,     2,   3,    4,    5,     6,    7  ] #
###################################################

# index 탐색의 시작점을 정할 수 있는 것처럼 탐색의 종료점(인덱스+1)을 지정할 수도 있다.
red_index_of_list = colors.index("red", 4, 8)
print(red_index_of_list)


# 대학 컴퓨터 공학과에서 배우기도 하고, 프로그램에서 가장 흔하게 사용되는 흔히 
# LIFO(Last In First Out)라 불리는 스택이라는 자료구조가 있다. (First In Last Out 과도 의미가 같다.)
# 가장 나중에 들어간 데이터가 가장 먼저 나오는 데이터 구조를 말한다.
# 가장 나중에 들어간 데이터를 가져오는 명령어는 list변수.pop()이 된다.

color = colors.pop()
print(color)
color = colors.pop()
print(color)

# pop이 된 데이터는 list에서 제거된다.
print(colors)

# index를 주어 원하는 데이터를 뽑아낼 수도 있다.
color = colors.pop(0)
print(color)

# index를 부여하는 방법에 따라 Queue, Stack이 결정된다.
# Stack : First In Last Out
# Queue : First In First Out
print(colors)

'Python & Django' 카테고리의 다른 글

Python - tuple  (0) 2019.01.30
Python - set  (0) 2019.01.30
Python - 자료형  (0) 2019.01.30
Python - __main__  (0) 2019.01.30
Python - 문자열  (0) 2019.01.30
Comments