우와한 개발자

[Python] 리스트(list)란? 리스트 특징과 주요 함수

by 우와한개발자

1. 리스트(List)란?

  • 여러 값을 하나의 변수에 저장하고 관리하는 자료형
  • 순서대로 저장
  • 인덱스는 0부터 시작
  • 리스트 안의 부분 리스트들은 요소의 수가 달라도 됨

2. list 생성

  • 대괄호 [ ] 를 사용해 생성
  • []안에 []를 넣으면 차원이 증가
numbers=[1,2,3,4,5] # 1차원
numbers2 = [[1,2,3],[4,5,6,7]] #2차원

 

range()
- 연속된 정수의 범위를 만들어주는 함수
- range객체 반환
형식 설명 예시
range(to) 0부터 to-1까지 range(5) → 0,1,2,3,4
range(from, to) from부터 to-1까지 range(2, 5) → 2,3,4
range(from, to, by) from부터 to-1까지 만큼 증가/감소 range(1, 10, 2) → 1,3,5,7,9
print(list(range(1, 11, 2))) #[1, 3, 5, 7, 9]​

3. 주요 함수/연산

 

1) 기본 조회 

  • len(list_data) : 길이
  • min(list_data), max(list_data) : 2차원 리스트에서는 부분 리스트 중에서 첫 요소가 가장 작은/큰 값을 갖는 리스트 반환

2) 요소 추가

  • + : 두 리스트 연결
  • * : 리스트 곱한 수만큼 반복
  • list_data.append(value) : 끝에 값 추가
  • list_data.extend(new_list) : new_list의 모든 요소들을 추가
  • list_data.insert(index, value) : index에 value추가
numbers = [1,2,3,[4,5]]
numbers.append(6) #[1,2,3,[4,5],6]
numbers.extend([7]) #[1,2,3,[4,5],6,7]
numbers.insert(1,10) #[1,10,2,3,[4,5],6,7]

numbers+[10,'20'] # #[1,10,2,3,[4,5],6,7, 10,'20']

 

3) 인덱싱

  • list_data.count(value) : 리스트내 value의 갯수 반환
  • list_data.index(value) : 리스트내 value의 인덱스 반환(여러개면 먼저 첫번째 인덱스)
  • list_data[index] : 해당 인덱스의 값 반환
numbers=[1,2,[3,4],1,2]
numbers.count(1) # 2
numbers.index(2) # 1
numbers[2]  # [3,4]

 

4) 슬라이싱

  • list_data[from:to] : from인덱스부터 to-1인덱스까지
  • list_data[from:to,by] : from인덱스부터 to-1인덱스까지 매 by번째 요소 
numbers=[1,2,[3,4],5,6,7]
numbers[0:len(numbers):3] #[1,5]

 

5) 요소 삭제

  • list_data.pop(index) : 해당 인덱스 요소 삭제 후 반환, 인덱스 명시안하면 맨 마지막 요소 삭제후 반환
  • list_data.remove(value) : 리스트내 value 요소 삭제(여러 개면 가장 작은 인덱스 요소 삭제)
  • del list_data[index] : 해당 요소 삭제 
  • list_data.clear() : 모든 요소 삭제
numbers=[1,1,2,[3,4],5]
numbers.pop() #5
numbers.remove(1) #numbers=[1,2,[3,4]]

 

6) 요소 정렬

  • list_data.sort(): 오름차순 정렬(파라미터로 key=정렬기준(기본값None), reverse=정렬방향(기본값False)) 
  • list_data.reverse() : 역순으로 나열 (⚠️내림차순 아님!!)
  • list_data[::-1] : 역순으로 나열
a = ['apple', 'kiwi', 'banana']
a.sort(key=len, reverse=True)
print(a) #['banana', 'apple', 'kiwi']

nums = [100,22,[3,4]]
nums.sort() # ⚠️TypeError : 리스트와 숫자 비교 못함

numbers = [1,22,3,44]
numbers.reverse() # [44,3,22,1]
원본데이터 변경 sort(), reverse()
원본데이터 변경 ❌ [::-1]

 

7) 복제

  • list_data.copy() : 복제된 새로운 객체 생성
  • = : 주소 복사해 같은 객체 참조
numbers=[1,2,3]
numbers_copy=numbers.copy()
numbers == numbers_copy #True

 

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기