Python - 리스트 사용 방법 (생성, 추출, 추가, 수정, 삭제, 존재여부확인, 중복수계산, 총갯수확인, 정렬)

메인 썸네일 이미지

List (순차적 저장하는 집합 자료형)

  • 여러개의 값을 저장할 때 사용
  • 대괄호 [ ] 를 사용하여 리스트 사용
  • 순서가 존재하며 인덱스의 값을 가짐
  • 값 변경이 가능
  • 리스트 안의 값들은 여러 자료형을 저장하여 사용 가능
    (문자열, 정수, 실수 또한, 리스트 안에 리스트 사용 가능)

리스트 사용 방법 (리스트 선언 및 값 추가)

  • 변수 = [ n1, n2, n3... ]
  • 변수에 값을 넣는 방법은 기존과 같으나 대괄호로 구분하여 여러 값 저장 가능
customer = [ '홍길동', '김철수' ]

>>>['홍길동', '김철수']

리스트를 사용하여 고객의 이름을 저장한 화면
리스트를 사용하여 고객의 이름을 저장한 화면

 

mylist = [ 'Red', [1,2,3], ['Red', 4, 5] ]

>>> ['Red', [1,2,3], ['Red', 4, 5]]

리스트에는 여러 형태의 자료형 저장 가능
리스트에는 여러 형태의 자료형 저장 가능


리스트에서 값 추출하기 (=Slicing)

  • 인덱스를 사용하여 특정 인덱스에 저장된 값 호출
  • 리스트 안의 리스트를 사용시 대괄호 [ ] 로 접근
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
week[2]
>>> 'Wed'

# 화요일부터 목요일까지만 불러오기
week[1:4]
>>> ['Tue', 'Wed', 'Thu']

인덱스를 활용하여 리스트 안의 특정 값들을 호출
인덱스를 활용하여 리스트 안의 특정 값들을 호출

 

mylist = [ 'Red', [1,2,3], ['Red', 4, 5] ]

my_list[2][2]
>>> 5

my_list[2][0][0:1]
>>> 'R'

리스트 안의 리스트를 호출시 대괄호 사용하여 특정 문자열을 추출
리스트 안의 리스트를 호출시 대괄호 사용하여 특정 문자열을 추출


리스트에 저장된 값 변경하기

  • 인덱스로 접근하여 값 덮어씌우기 가능
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

# 월요일을 일요일로 바꿔보기
week[0] = 'Sun'
week[0]
>>> 'Sun'

인덱스를 활용하여 직접 값을 변경
인덱스를 활용하여 직접 값을 변경


리스트에 항목 추가

Append

  • .append( 새로운 값 ) : 맨 뒤에 값 추가
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

week.append('Sun')
week # 맨 뒤에 값 추가
>>> ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sun']

append() 함수를 사용하여 값을 새로이 추가
append() 함수를 사용하여 값을 새로이 추가


Insert

  • .insert( index , 바꿀 값) : 특정 위치에 값 추가, 해당 위치의 기존 데이터들은 인덱스 +1
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

week.insert(0, 'Sun')
>>> ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']

맨 앞에 추가, 기존 데이터들은 인덱스+1 확인
맨 앞에 추가, 기존 데이터들은 인덱스+1 확인

 

week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

week.insert(5, 'Sun')
>>> ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sun']

접근하는 인덱스의 값이 없을 경우, 값이 추가된다.
접근하는 인덱스의 값이 없을 경우, 값이 추가된다.


리스트의 항목 삭제

del

  • .del list[ index ] : 특정 위치의 값 삭제
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

# 금요일 지우기
del week[4] # 인덱스로 접근
>>> ['Mon', 'Tue', 'Wed', 'Thu']

del을 사용하여 week리스트의 인덱스 4번째의 값을 제거
del을 사용하여 week리스트의 인덱스 4번째의 값을 제거


remove

  • .remove( 'strings' ) : 특정 문자열 삭제
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

# 목요일 지우기
week.remove('Thu') # 문자열로 접근, 대소문자 주의
>>> ['Mon', 'Tue', 'Wed', 'Fri']

remove() 함수를 사용하여 week리스트의 'Thu'를 찾아 제거
remove() 함수를 사용하여 week리스트의 'Thu'를 찾아 제거


pop

  • .pop( index ) : 특정 위치의 값 삭제
week = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

# 화요일 지우기
week.pop(1) # 인덱스로 접근
>>> ['Mon', 'Wed', 'Thu', 'Fri']

# 마지막 값 지우기
week.pop() # 인수 미설정 시 가장 마지막 값 제거
>>> ['Mon', 'Wed', 'Thu']

화요일 값 제거. 인자를 입력하지 않으면 가장 마지막의 값이 제거된다.
화요일 값 제거. 인자를 입력하지 않으면 가장 마지막의 값이 제거된다.


remove와 pop 차이점

  • remove와 pop은 리스트 뒤에 온점(.)을 사용하여 삭제하지만 데이터에 접근하는 방식이 다름
  remove pop
데이터 접근 방법 문자열로 접근 인덱스로 접근

리스트 합치기 (연산)

  • 리스트끼리 +연산 가능
  • 리스트1 + 리스트2 = 리스트1 , 리스트2
fruits = []

fruits.append('사과')
fruits.append('배')
>>> ['사과', '배']

others = ['망고', '오렌지']
>>> ['망고', '오렌지']

fruits = fruits + others # 리스트끼리 연산 가능
fruits
>>> ['사과', '배', '망고', '오렌지']

두 개의 리스트에 값을 추가하고, 리스트끼리 +연산하여 합친 결과화면
두 개의 리스트에 값을 추가하고, 리스트끼리 +연산하여 합친 결과화면


리스트의 순서(index)와 값 확인(in)

index

  • .index( 'strings' )
    • 찾는 문자열 값이 있으면 인덱스 반환, 값이 여러개일 경우 첫번째 값만 반환
    • 찾는 값이 존재하지 않을 경우, 에러가 출력
fruits = ['사과', '배', '망고', '오렌지']

# 오렌지가 어디있는지 찾아보기
fruits.index('오렌지') # 인덱스 값을 반환
>>> 3

# 포도가 어디있는지 찾아보기
fruits.index('포도') # 없을 경우 에러 출력
>>> ValueError: '포도' is not in list

찾는 문자열이 존재할 경우 인덱스의 값을 반환하지만, 없을 경우 에러가 출력된다.
찾는 문자열이 존재할 경우 인덱스의 값을 반환하지만, 없을 경우 에러가 출력된다.


in

  • 'strings' in list : 찾는 문자열 값이 있으면 True 값 반환, 없으면 False 값 반환
fruits = ['사과', '배', '망고', '오렌지']

'오렌지' in fruits
>>> True

'포도' in fruits
>>> False

존재 여부에 따라 True(참)/False(거짓) 값 반환
존재 여부에 따라 True(참)/False(거짓) 값 반환


리스트에서 중복되는 값의 갯수 세기

count

  • list .count() 리스트에 중복되어 있는 값의 갯수를 카운팅
fruits = ['사과', '배', '망고', '오렌지']

# 리스트에 오렌지 갯수 확인하기
fruits.count('오렌지')
>>> 1

# 리스트에 포도 갯수 확인하기
fruits.count('포도')
>>> 0

count() 함수를 사용하여 찾는 문자열의 중복수 확인
count() 함수를 사용하여 찾는 문자열의 중복수 확인


리스트에 포함된 항목들의 전체 갯수 세기

len

  • len( list ) : 총 항목의 수를 반환
fruits = ['사과', '배', '망고', '오렌지']

len(fruits)
>>> 4

리스트 fruits의 저장된 총 항목의 수를 반환
리스트 fruits의 저장된 총 항목의 수를 반환


리스트의 값 정렬하기

sorted / sort

  • sorted( list )
    • 함수 안의 인자를 넣어 정렬
    • 메모리에 저장되지 않음
  •  list .sort()
    • 변수 뒤에 온점(.) 뒤에 사용
    • 메모리에 저장 됨
  • 디폴트는 오름차순, 내림차순 reverse=True 옵션 추가
my_list = ['가', '나', '다']

### sorted는 메모리에 저장되지 않는다. ###
# 데이터 오름차순 정렬하기
sorted(my_list)
>>> ['가', '나', '다']

# 데이터 내림차순 정렬하기
sorted(my_list, reverse=True)
>>> ['다', '나', '가']


### sort()는 메모리에 저장된다. ###
# 데이터 오름차순 정렬하기
my_list.sort()
my_list
>>> ['가', '나', '다']

# 데이터 내림차순 정렬하기
my_list.sort(reverse=True)
my_list
>>> ['다', '나', '가']

sorted()와 .sort()사용 방법과 메모리 저장 유무 확인
sorted()와 .sort()사용 방법과 메모리 저장 유무 확인