[Python] 리스트 자료형

Inah-_-·2021년 1월 29일
0

Python

목록 보기
3/21
post-thumbnail





# 자료형(Python data type)

프로그래밍에 사용되는 숫자, 문자열 등 자료형태의 모든 것,
Python의 자료형은 정수, 실수, 문자, 논리형 등의 기본 자료형 형태를 처리한다.



# 리스트 인덱싱과 슬라이싱

문자열과 마찬가지로 Indexing과 Slicing이 가능하다. tuple도 가능!

# 인덱싱(Indexing, 가리키다)

인덱스 번호를 사용하여 한 요소의 값을 가져온다.

>>> a = [10, 20, 30, 100]
>>> print(a)
[10, 20, 30, 100]

>>> a[0] + a [2]	#a[0]는 리스트 a의 첫 번째 요솟값을 의미한다. 
40

>>> a[-1] + a[-2]	#a[-1]은 리스트 a의 마지막 요솟값을 의미하고, a[-2]는 뒤에서 두번째의 요솟값을 의미한다.
130

인덱스 번호로 리스트 특정 요소의 값을 수정할 수 있다.

>>> a = [10, 20, 30, 100]
>>> a[2] = 300    #[10] = [0], [20] = [1], [30] = [2], [100] = [3]이다.

>>> print(a)
[10, 20, 300, 100]


# 슬라이싱(Slicing, 잘라내다)

인덱싱이 한 요소의 값을 가져왔다면, 슬라이싱은 인덱스 번호의 0부터 원하는 위치의 요소까지 값을 가져올 수 있다.
변수명[시작(start):끝(stop):간격(step)]

>>> slicing = ['olaf', 'elsa', 'anna', 'krisoff', 'snowgies', 'sven']
>>> slicing[1:5]
['elsa', 'anna', 'krisoff', 'snowgies']		#앞에서 1개의 요소만 제외하는 것과 같다.

>>> slicing[:6]
['olaf', 'elsa', 'anna', 'krisoff', 'snowgies', 'sven']		#앞에서 부터 6개의 요소만 선택하는 것과 같다.

>>> slicing[2:6]
['anna', 'krisoff', 'snowgies', 'sven']		#앞에서 6개의 요소를 선택한 후 선택한 값의 앞에서 2개를 제외하는 것과 같다.

중첩 리스트에서 슬라이싱

>>> slicing = ['olaf', 'snowgies', ['elsa', 'anna'], 'krisoff', 'sven']
>>> slicing[2:5]
[['elsa', 'anna'], 'krisoff', 'sven']

slicing[2:6]에서 a[3] 값은 중첩 리스트인 ['elsa', 'anna']기 때문에
['elsa', 'anna']부터 a[5] 'sven'까지의 값이 된다.



# 리스트 연산

리스트의 연산은 리스트 내의 값이 아닌 '리스트' 자체를 연산한다.

1. + 리스트 더하기

>>> a = [1, 3, 5]
>>> b = [2, 4, 6]
[1, 3, 5, 2, 4, 6]

2. * 리스트 곱하기

>>> a = [3, 6, 9]
>>> a * 2
[3, 6, 9, 3, 6, 9]

3. len() 리스트 길이 구하기

>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> len(a)
10


# 리스트 값 삭제

del() 리스트의 특정 값 삭제

del은 Python이 가지고 있는 자체적인 삭제 함수이다.

>>> a = ['hi', 'hello', 'xoxo', 'goodbye']
>>> del a[0]
>>> a
['hello', 'xoxo', 'goodbye']

del() 슬라이싱

>>> a = ['hi', 'hello', 'xoxo', 'goodbye']
>>> del a[3:]   
>>> a
['hi', 'hello', 'xoxo']    #a[3]에 해당하는 요소부터 끝 요소까지 삭제된다.

remove(x) 리스트의 요소 제거

remove()는 지정한 위치 값과 같은 요소를 검색 후 나온 처음 값을 삭제한다.

>>> a = ['가', '나', '다', '라', '마', '바', '사']
>>> a.remove('다')
>>> a
['가', '나', '라', '마', '바', '사']

>>> a.remove('아')

#설정한 값이 없을 경우
Traceback (most recent call last):
  File "<pyshell#159>", line 1, in <module>
    a.remove('아')
ValueError: list.remove(x): x not in list    #오류가 발생한다.

pop() 리스트 요소 끄집어내기

pop()는 지정한 위치 값을 삭제하고 삭제한 값을 취득한다.

>>> a = ['가', '나', '다', '라', '마', '바', '사']
>>> a.pop(2)    #리스트의 pop(x)번째 요소를 취득 후 삭제한다.
'다'

>>> a
['가', '나', '라', '마', '바', '사']

clear() 리스트 모든 값 삭제

clear()는 리스트 내에 저장 된 모든 요소를 삭제한다.

>>> a = ['가', '나', '다', '라', '마', '바', '사']
>>> a.clear()
>>> a
[]


# 리스트 함수

유용하다는 함수 몇가지 끄적
append, sort, reverse, insert, count, extend

.append - 리스트에 요소 추가

append()는 '첨부하다'라는 뜻으로, 리스트의 맨 마지막에 (x)값을 추가하는 함수이다.

>>> a = [1, 2, 3, 4, 5]
>>> a.append(6)

>>> a
[1, 2, 3, 4, 5, 6]    #a.append로 '6' 추가

.sort - 리스트 정렬

.sort()는 리스트의 요소들을 순서대로 정렬해주는 함수이다.

  • 리스트가 정렬된 상태로 '변경'된다.
  • 정렬 기준은 문자열 : 알파벳 → 가나다순, 숫자 : 오름차순(기본값)
  • 리스트에만 사용할 수 있다.
  • 내림차순 정렬은 sort(reverse=True)를 통해 설정한다.
  • 오름차순 정렬은 sort()를 통해 설정한다.
>>> my_list = [1, 4, 5, 2, 3]
>>> my_list.sort()

>>> my_list
[1, 2, 3, 4, 5]
>>> my_list = [1, 4, 5, 2, 3]

>>> print('기본 설정 정렬 : ',my_list)
기본 설정 정렬 : [1, 2, 3, 4, 5]

>>> my_list.sort(reverse=True)
>>> print('True 내림차순 정렬 :',my_list)
True 내림차순 정렬 : [5, 4, 3, 2, 1]

.sorted() - 순서대로 리스트 정렬

  • 기존의 리스트를 원본을 변경하는 것이 아니라 정렬의 새로운 리스트를 반환한다.
  • 정렬 기준은 문자열 : 알파벳 → 가나다순, 숫자 : 오름차순(기본값)
  • 다른 객체에도 사용할 수 있다.
  • 내림차순 정렬은 sorted(reverse=True)를 통해 설정한다.
  • 오름차순 정렬은 sort()를 통해 설정한다.
>>> my_list = [9, 2, 1, 4, 6, 5, 7, 8, 3]
>>> my_list=sorted(my_list)
>>> my_list
[1, 2, 3, 4, 5, 6, 7, 8, 9]

.insert() - 리스트에 요소 삽입

insert(a,b) 리스트의 a번째 위치에 b를 삽입하는 함수이다.

>>> a = [1, 2, 3, 4]
>>> a.insert(4, 5)    #a의 4번째 값에 5를 삽입하라는 뜻이다.

>>> a
[1, 2, 3, 4, 5]

.count() - 리스트 내 요소 x의 개수

count(x)는 리스트 안에 x가 몇 개 있는지 검색 후 그 개수를 알려주는 함수이다.

>>> a = [1, 2, 3, 4, 5, 3, 2, 4, 7, 8, 2, 1]
>>> a.count(2)    #a 안에 '2'의 개수를 알려준다.
3

.extend() - 리스트 확장

extend(x)의 x값은 '리스트'만 올 수 있고 기존 a리스트에 x리스트를 더하게 된다.

>>> a = ['hi']
>>> a.extend(['nice to meet you'])

>>> a
['hi', 'nice to meet you']




profile
Backend Developer

0개의 댓글