728x90
반응형
SMALL
리스트(list)
이전에 문자열을 논의할 때 파이썬에서 시퀀스의 개념을 소개했습니다. 리스트는 파이썬에서 시퀀스의 가장 일반적인 버전이라고 생각할 수 있습니다. 문자열과 달리 변경 가능합니다. 즉, 목록 내의 요소가 변경될 수 있습니다!
1. 리스트 선언
2. 리시트 인덱싱 및 슬라이싱
3. 리스트 기본 함수
4. 리스트 중첩
5. List Comprehension 소개
1. 리스트 선언
# Assign a list to an variable named my_list
my_list = [1,2,3]
리스트는 대괄호 [ ] 와 리스트의 모든요소를 구분하는 쉼표로 구성됩니다.
my_list = ['A string',23,100.232,'o']
리스트는 실제로 다른 객체의 유형을 보유할 수 있습니다.
len(my_list)
문자열과 마찬가지로 len() 함수는 리스트의 시퀀스에 몇 개의 항목이 있는지 알려줍니다.
4
2. 리시트 인덱싱 및 슬라이싱
인덱싱과 슬라잉싱은 문자열과 동일하게 작동합니다.
my_list = ['one','two','three',4,5]
# Grab element at index 0
my_list[0]
'one'
문자열에 대해 했던 것 처럼 +를 사용하여 목록을 연결헐 수도 있습니다.
my_list + ['new item']
['one', 'two', 'three', 4, 5, 'new item']
my_list
['one', 'two', 'three', 4, 5]
바로 위의 코드를 보면 실제로 기존 리스트를 변경시키지 않습니다.
# Reassign
my_list = my_list + ['add new item permanently']
my_list
['one', 'two', 'three', 4, 5, 'add new item permanently']
변경사항을 영구적으로 적용하려면 리스트를 다시 할당해야 합니다.
# Make the list double
my_list * 2
['one',
'two',
'three',
4,
5,
'add new item permanently',
'one',
'two',
'three',
4,
5,
'add new item permanently']
문자열과 유사한 복제 방법에 *(곱하기 연산)를 사용할 수도 있습니다. 연산부호를 사용한 경우에도 리스트의 값을 바꾸는 것 이 아닙니다. 단지 기존 리스트를 원하는만큼 출력하는 것 입니다.
3. 리스트 기본 함수
다른 언어의 배열과 Python의 리스트 사이에서 유사점을 찾아 낼 수 있습니다. 그러나 Python의 리스트응 두가지 좋은 이유로 다른 언어의 배열보다 유연하다고 생각 됩니다. 첫번째는 고정된 크기가 없고(목록의 크기를 지정하지 않아도 된다) 두번째는 고정된 유형 제약이 없다는 것 입니다.(서로 다른 데이터 타입의 객체로 이루어질 수 있다.)
새로운 리스트 생성해줍니다.
# 새로운 리스트 생성
list1 = [1,2,3]
리스트 끝에 항목을 영구적으로 추가하려면 append 메소드를 사용하십시오.
# Append
list1.append('append me!')
# Show
list1
[1, 2, 3, 'append me!']
리스트에서 항목을 "팝오프"하려면 pop을 사용하십시오. 기본적으로 pop은 마지막 인덱스를 제거하지만 어떤 인덱스를 제거할지 지정할 수도 있습니다.
# Pop off the 0 indexed item
list1.pop(0)
0번 인덱스를 삭제
1
# Show
list1
[2, 3, 'append me!']
또한 리스트 인덱싱은 해당 인덱스에 요소가 없는 경우 오류를 반환한다는 점에 유의해야 합니다.
100번 인덱스에 해당하는 값이 없어서 오류가 발생한다.
list1[100]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-22-af6d2015fa1f> in <module>()
----> 1 list1[100]
IndexError: list index out of range
정렬 방법과 역방향 방법을 사용하여 리스트에 영향을 줄 수도 있습니다.
정렬을 한 경우 영문자는 알파벳 순으로 정렬되고 숫자의 경우에는 오름차순으로 정렬됩니다.
new_list = ['a','e','x','b','c']
# Use sort to sort the list (in this case alphabetical order, but for numbers it will go ascending)
new_list.sort()
new_list
['a', 'b', 'c', 'e', 'x']
4. 리스트 중첩
Python 데이터 구조의 큰 특징은 중첩을 지원한다는 것입니다. 이는 데이터 구조 내에서 데이터 구조를 가질 수 있음을 의미합니다. ( 리스트 안에 리스트를 선언)
# Let's make three lists
lst_1=[1,2,3]
lst_2=[4,5,6]
lst_3=[7,8,9]
# Make a list of lists to form a matrix
matrix = [lst_1,lst_2,lst_3]
# Show
matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
다르게 표현하면 2차원 배열이라고 할 수 있다.
인덱싱을 사용하여 요소를 가져올 수 있지만, 인덱싱을 통해서 가져올 수 있는 항목이 두가지로 나뉘게 된다.
첫번째는 행렬 개체의 항목
# Grab first item in matrix object
matrix[0]
[1, 2, 3]
두번째는 해당 리스트의 항목(2차원 배열에서의 인덱싱)
# Grab first item of the first item in the matrix object
matrix[0][0]
1
5. List Omprehension 소개
Python에는 list comprehension이라는 고급 기능이 있습니다. 목록을 빠르게 구성할 수 있습니다. list comprehension을 완전히 이해하려면 for 루프를 이해해야 합니다.
반응형
LIST
'Python' 카테고리의 다른 글
Python Loops (0) | 2023.01.20 |
---|---|
Python Conditional Satement (0) | 2023.01.20 |
Python Tuple (0) | 2023.01.19 |
Python Strings (0) | 2023.01.19 |
Pyton 객체와 데이터 구조 기초 (0) | 2023.01.18 |