영벨롭 개발 일지

[Python] 파이썬의 자료형: 리스트 list 본문

Programming Language/Python

[Python] 파이썬의 자료형: 리스트 list

영벨롭 2022. 4. 13. 19:39

[리스트 특징]

 

특징
순서가 있는 자료형
원소의 중복이 가능한 자료형
변경이 가능한 자료형

 

 

 

 

[리스트 생성]

 

#빈 리스트 생성
a = []
b = list()

#생성과 동시에 초기화
c = [1, 2, 3, 4, 5]
d = ["hello", 1, 2, "world"]

 

 

 

 

 

 

[리스트의 덧셈, 곱셈]

 

  • 덧셈 : 리스트 연결
a = [1, 2]
b = [3, 4, 5]
c = a + b

print(c)  # [1, 2, 3, 4, 5]

 

 

  • 곱셈 : 리스트 반복
a = [1, 2]
b = a * 3

print(b)  # [1, 2, 1, 2, 1, 2]

 

 

 

 

 

[리스트의 인덱싱 & 슬라이싱]

 

  • 인덱싱 : 원소 접근

 리스트는 순서가 있는 자료형이기 때문에 인덱스를 이용하여 원소를 접근할 수 있습니다. 

 

  인덱스 범위
양수 0 ~ N-1 (리스트의 길이가 N일 때)
음수 -N ~ -1 (리스트의 길이가 N일 때)

 

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

#값 얻기
b = a[0]    #1
c = a[-2]   #4

#값 할당
a[2] = 9

print(a)   # [1, 2, 9, 4, 5]

 

 

 

  • 리스트 슬라이싱 : 리스트 자르기
방법 설명
a[ : m ] 리스트 a를 인덱스 0번째부터 m-1 번째까지 슬라이싱
a[ n :  ] 리스트 a를 인덱스 n번째부터 리스트의 끝까지 슬라이싱
a[ n : m ] 리스트 a를 인덱스 n번째부터 m-1번째까지 슬라이싱
a[ n : 매우큰수 ] 끝지점을 리스트의 길이보다 큰 값을 지정하게 되면 자동으로 리스트의 마지막까지 슬라이싱 합니다. 

 

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(a[:5])  # [1, 2, 3, 4, 5]
print(a[6:])  # [7, 8, 9, 10]
print(a[2:7])  # [3, 4, 5, 6, 7]
print(a[0:99999])  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

 

 

 

 

 

[리스트의 길이 & 삭제]

 

  • 리스트의 길이 len()
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(len(a))  #10

 

  • 리스트 삭제 del()
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

del(a[0])  #0번째 원소 삭제
print(a)   # [2, 3, 4, 5, 6, 7, 8, 9, 10]

del(a[0:3])  #0~2번째 원소 삭제
print(a)      # [5, 6, 7, 8, 9, 10]

 

 

 

[리스트 메서드]

 

  • list.append(x)

 리스트의 맨 끝에 원소 x 추가

 

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

a.append(10)
print(a)  # [1, 2, 3, 4, 5, 10]

 

 

  • list.insert(i, x)

 리스트의 i번째 자리에 원소 x 추가, 기존 원소들은 한 칸씩 뒤로 밀려남

 

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

a.insert(2, 10)
print(a)  # [1, 2, 10, 3, 4, 5]

 

 

 

  • list.remove(x)

 리스트에서 원소 x 삭제

 

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

a.remove(1)
print(a)  # [2, 3, 4, 5]

 

 

  • list.pop()

 리스트의 맨 마지막 원소 반환 후 삭제

 

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

b = a.pop()

print(a)  # [1, 2, 3, 4]
print(b)  # 5

 

 

  • list.extend(list2)

 list 뒤에 list2를 덧붙임

 

 list + list2는 새로운 리스트를 반환하는 반면, list.extend(list2)는 list에다가 list2를 덧붙이는 것입니다. 

 

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

a.extend(b)
print(a)  # [1, 2, 3, 4, 5, 6, 7]

 

 

 

  • list.copy()

 해당 리스트를 복사한 리스트를 반환

 

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

b = a.copy()

print(b)  # [1, 2, 3, 4, 5]

 

 

  • list.reverse()

 해당 리스트의 내부 요소들을 뒤집기

 

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

a.reverse()

print(a)  # [5, 4, 3, 2, 1]

 

 

  • list.sort()

 리스트를 오름차순으로 정렬합니다. 

 

 이때 리스트 내의 원소들의 데이터 타입이 일치하지 않으면 정렬되지 않습니다. 

 

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

a.sort()

print(a)  # [1, 2, 3, 4, 5]

 

  • list.cound(x)

 리스트 내의 원소 x의 개수

 

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

print(a.count(1))  # 3

 

 

  • list.index(x)

 리스트 내의 원소 x의 index를 반환합니다. 

 

 해당 원소가 여러개 있다면, 그 중 가장 첫 번째 원소의 index를 반환합니다. 

 

a = ["hello", 1, 2, 3, "world", 10]

print(a.index(1))  # 1

 

 

 

  • list.clear()

 리스트를 비워줌

 

a = ["hello", 1, 2, 3, "world", 10]

a.clear()

print(a)  # []
반응형