無限

몸은 현실 마음은 낭만

Develop & Journal

Python

Python List

알파 조 2023. 1. 19. 21:20
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