[Python] List (리스트 자료형)

Hyunji·2022년 3월 3일
0

Python

목록 보기
4/13
post-thumbnail

Python 의 특징

  • 인터프리터 기반의 객체지향 언어
  • 플랫폼에 구애받지 않는 언어
  • 동적 타이핑 방식의 언어
  • 리플렉션을 지원하는 언어
  • 확장성이 뛰어난 언어

List

  • 다수 데이터가 서로 다른 형태의 자료여도 됨
  • 변경 가능하다는 점 때문에 데이터 분석에서 많이 사용됨 (튜플은 자료 갱신이 안됨!)
  • 클래스로 구현되어 있으므로 다양한 연산(멤버 함수 또는 메소드)를 지원함
  • 대괄호 ([]) 를 사용해서 자료값을 감싸주고, 대괄호 안의 다수의 값들은 , 로 구분을 해줌

List 기본 사용법

대괄호와 콤마로 리스트 생성

list_1 = ['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
list_1
['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
  • 리스트 안에 문자열, 정수, 부동소수형, 리스트, 튜플 등 다양한 형태의 자료들이 들어갈 수 있음
  • 콤마로 구분해주고, 대괄호로 감싸줌

del : 리스트 삭제

list_1 = ['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
list_1
['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
del list_1
list_1

list[index] = value

list_1
['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
list_1[1]
123
list_1[1] = 111
list_1
['abc', 111, 3.14, ['edf', 456], ('gh', 'st')]

리스트 인덱싱, 슬라이싱

list_1 = ['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
list_1
['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]

list_1[0]
'abc'
list_1[0:3]
['abc', 123, 3.14]
list_1[3:]
[['edf', 456], ('gh', 'st')]
  • 첫번째 자리는 '0'부터 인덱싱이 시작됨
  • 마이너스 부호('-')를 붙여주면 뒤에서부터 인덱싱이 시작함
list_1 = ['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]
list_1
['abc', 123, 3.14, ['edf', 456], ('gh', 'st')]

list_1[-1]
('gh', 'st')
list_1[-3:-1]
[3.14,['edf', 456]]

기본 연산자

설명파이썬 표현결과
리스트 길이 (length)len([1,2,3])3
리스트 합치기 (concatenation)[1,2,3] + [4,5,6][1,2,3,4,5,6]
반복 (repetition)[1,2,3]*3[1,2,3,1,2,3,1,2,3]
소속 여부 (membership)1 in [1,2,3]
 4 in [1,2,3]
True
 False
for loop 반복 (iteration)for x in [1,2,3]: print (x);1
 2 
 3
  • 리스트 길이를 재는 len() 함수
  • 리스트를 합치는 + 연산자
  • 리스트 값을 반복하는 * 연산자
  • 소속 여부 블리언값 (True, False)를 반환하는 `in 연산자
  • 함수를 반복하는데 사용하는 for loop

List 내장 함수

len(list)

list1 = [1,2,3]
list2 = ['a', 'b', 'c', 'd']
len(list1)
3
len(list2)
4
  • 리스트의 전체 길이
  • for loop 문에서 자주 사용

max(list)

list1 = [1,2,3]
max(list1)
3

list2 = ['a', 'b', 'c', 'd']
max(list2)
'd'
  • 리스트 안에 있는 요소 중에서 최대값 반환
  • 문자인 경우 알파벳 순서 기준

min(list)

list1 = [1,2,3]
min(list1)
1

list2 = ['a', 'b', 'c', 'd']
min(list2)
'a'
  • 리스트 안에 있는 요소 중에서 최소값 반환
  • 문자인 경우 알파벳 순서 기준

list(seq)

tup = ('aaa', 'bbb', 'ccc') #tuple
tup
('aaa', 'bbb', 'ccc')

list_tup = list(tup)
list_tup
['aaa', 'bbb', 'ccc']
type(list_tup)
<class 'list'>
  • 튜플을 리스트 자료형으로 변환

cmp(list1, list2)

list1 = [1,2,3]
list2 = ['a', 'b', 'c', 'd']
list3 = [1,2,3]

list1 == list2
False
list1 == list3
True

List 메소드 (List method)

list.append(obj)

list1 = [1, 2, 'a', 'b']
list1.append('c')
list1
[1, 2, 'a', 'b', 'c']
  • 기존 리스트에 1개의 요소를 이어 붙이기
  • append() 메소드를 사용할 때는 괄호 안에 추가하려는 요소를 1개만 써야 함
  • 2개 이상 쓰면 TypeError 가 발생함

list.extend(seq)

list2 = [1, 2, 'a', 'b', 'c']
list3 = [3, 3, 4, 'd', 'd']

list3.extend(list2)
list3
[3, 3, 4, 'd', 'd', 1, 2, 'a', 'b', 'c']
  • 기존 리스트에 다른 리스트 이어붙이기

list.count(obj)

list3 = [3, 3, 4, 'd', 'd', 'd', 'e']
list3.count(3)
2
list.count('d')
3
  • 리스트 안에 obj가 몇 개 들어있는지 세어서 개수를 반환

list.index(obj)

list4 = [1, 2, 'a', 'b', 'c', 'a']

list4.index('a')
2
list4.index('c')
4
  • 리스트에서 obj 요소 값이 있는 가장 작은 index 값 반환
  • 만약 리스트 안에 없는 값을 obj 에 넣어서 list.index(obj)를 실행하면 ValueError 가 발생

list.insert(index, obj)

list5 = [1, 2, 'a', 'b', 'c']
list5
[1, 2, 'a', 'b', 'c']

list.insert(3, 'kkkk')
list5
[1, 2, 'a', 'kkkk', 'b', 'c']
  • 기존 리스트의 index 위치에 obj 값을 삽입

list.pop(obj=list[-1])

list6 = [1, 2, 'a', 'b', 'c']
list6.pop()
'c'
list6
[1, 2, 'a', 'b']
  • 기존 리스트에서 마지막 요소를 제거하고, 제거된 마지막 요소를 반환
list6 = [1,2,'a','b','c']
list.pop(2)
'a'
list6
[1,2,'b','c']
  • pop()의 괄호 안에 정수를 넣어주면, 기존 리스트에서 해당 정수 위치의 index 값을 제거하고, 제거된 index 위치 요소의 값을 반환

list.remove(obj)

list1 = [1,2,'a','b','c']
list1.remove(1)
list1
[2,'a','b','c']

list1.remove('a')
list1
[2,'b','c']
  • 기존 리스트에서 remove(obj) 메소드 안의 obj 객체를 제거
  • remove() 메소드는 괄호 안에 단 1개의 argument 만을 사용
  • 2개 이상을 넣으면 TypeError 가 발생함

list.reverse()

list1 = [1,2,'a','b','c']
list1.reverse()

list1
['c','b','a',2,1]
  • 리스트의 객체를 리스트 안에서 순서를 반대로 뒤집기

list.sort()

list1 = [3,1,9,4,2,8]
list1.sort()
list1
[1,2,3,4,8,9]
  • 리스트의 객체를 리스트 안에서 순서대로 정렬
  • sort() 메소드의 디폴트는 오름차순이다
list1 = [3,1,9,4,2,8]
list1.sort(reverse=True)
list1
[9,8,4,3,2,1]
  • 내림차순으로 정렬하고 싶다면 list.sort(reverse=True) 처럼 옵션을 설정해주면 됨
list1_1 = ['c','a','b']
list1_1.sort()
list1_1
['a','b','c']
  • 문자는 알파벳 순서로 정렬
  • 숫자와 문자가 섞여있는 리스트에 sort() 메소드를 적용하면 TypeError 가 발생

https://rfriend.tistory.com/329?category=695562
https://rfriend.tistory.com/330

profile
성장중인 개발자

0개의 댓글