파이썬에는 배열이 없습니다.
그 대신 배열을 대체하기 위한 리스트가 존재합니다.
이번에는 리스트에 대해서 알아보겠습니다.
리스트의 기본형은 다음과 같습니다.
리스트명 = [요소1, 요소2, 요소3 . . . . . 요소n]
리스트가 배열과 가장 크게 다른 점은 미리 크기를 설정할 필요가 없다는 점입니다.
예제로 보면 리스트는 다양한 방법으로 선언할 수 있습니다.
value1 = list()
value2 = []
value3 = ["red", "blue", "green", "pink", "black"]
value4 = [1, 2, 3, 4, 5]
value5 = [1, "blue", "green", "pink", "black"]
value6 = [1, 2, ["green", "pink", "black"]]
빈 리스트를 선언하고 싶다면 value1 = list() 또는 value2 = []로 정의하면 됩니다.
리스트는 다른 자료형들끼리도 저장이 가능합니다.
리스트 안에 리스트도 요소로 포함시킬 수 있습니다.
만약 규칙성이 있는 요소라면 직접 입력하지 않고 for문을 이용하여 요소를 생성할 수 있습니다.
이 방법을 컴프리헨션(Comprehension)이라 합니다.
0부터 100까지 10씩 증가하는 요소를 생성해보겠습니다.
value = [n*10 for n in range(0, 11)]
print(value)
살펴보면
리스트명 = [요소생성 for 요소추출 in 컬렉션]
조건과 중복 표현도 가능합니다.
다시 한번 조건을 이용해서 위와 같은 10씩 증가하는 요소를 생성해보면 다음과 같이 가능합니다.
value = [n for n in range(0, 101) if n % 10 == 0]
print(value)
중복 표현은 컴프리헨션은 for문을 여러 번 사용이 가능합니다.
a = ["apple", "melon"]
b = ["red", "blue", "green", "pink", "black"]
value = [[x, y] for x in a for y in b]
print(value)
컴프리헨션을 적절하게 사용해주면 쉽게 요소를 생성할 수 있습니다.
더 간단하게 range만으로도 만들 수 있습니다.
value = list(range(0, 10, 2))
print(value)
range()의 값을 list()를 사용해서 리스트로 변환시켜 줍니다.
만약 모든 리스트의 전체 요소에 접근하고 싶다면 다음과 같이 리스트 이름을 입력하면 됩니다,
color = ["red", "blue", "green", "pink", "black"]
print(color)
리스트는 일부 요소들만 출력이 가능합니다.
먼저 인덱싱은 리스트는 인덱스 값을 통해서 요소에 접근이 가능합니다.
근데 독특한 점이 하나 있습니다. 인덱스에 음수가 존재합니다. (-1이 가장 마지막 요소입니다.)
음수는 역순으로 인덱싱 됩니다.
value = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(value[5])
print(value[-1])
print(value[5])는 value의 인덱스5에 해당하는 5가 출력됐습니다.(0부터 시작)
print(value[-1])는 음수 인덱스로 역으로 뒤에서 첫 번째인 9가 출력됐습니다.
다음으로 슬라이싱으로 부분 부분 잘라서 출력이 가능합니다.
value = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(value[:5])
print(value[5:])
print(value[3:7])
print(value[1:-2])
print(value[0:9:2])
먼저 []의 구성을 보면 [시작인덱스 : 종료인덱스 : 인덱스증가값]으로 하고 인덱스증가값은 입력하지 않으면 기본적으로 1씩 증가합니다. 종료 인덱스는 포함하지 않고 -1의 인덱스까지만 출력합니다.
결과와 함께 코드를 살펴보면
print(value[:5])는 처음부터 인덱스 4까지 출력하라는 의미입니다.
print(value[5:])는 인덱스5 부터 끝까지 출력하라는 의미입니다.
print(value[3:7])는 인덱스3부터 인덱스 6까지 출력하라는 의미입니다.
print(value[1:-2])는 인덱스1부터 시작해서 -3까지만 출력하라는 의미입니다. -3이니 끝에서 3번째 요소까지 출력입니다.
print(value[0:9:2])는 인덱스0부터 인덱스8까지 출력하는데 인덱스가 2씩 증가하게 됩니다.
중복 리스트들도 살펴보면
value = [0, 1, 2, [3, 4, 5, [6, 7, 8], 9]]
print(value[1])
print(value[3][0])
print(value[3][3][0])
그림으로 살펴보면
존재하지 않는 크기 이상의 인덱스를 입력하면 에러가 발생합니다.
'공부 자료실 > 파이썬(Python)' 카테고리의 다른 글
파이썬(Python) - 튜플(Tuple) (0) | 2020.07.07 |
---|---|
파이썬(Python) - 리스트 관리 (0) | 2020.07.06 |
파이썬(Python) - 반복문 (0) | 2020.07.06 |
파이썬(Python) - 조건문 (0) | 2020.06.19 |
파이썬(Python) - 연산자 (0) | 2020.06.17 |
댓글