Python 05. 리스트(List)

jonghyuck’s velog·2022년 7월 27일
0

Python 정리

목록 보기
6/12

✅ 리스트?
✅ 빈 리스트 만들기
✅ 서로 다른 자료형을 함께 포함하는 리스트
✅ 리스트 인덱싱과 슬라이싱
✅ 리스트에 데이터 삽입/삭제/수정
✅ 리스트의 함수들
✅ List Comprehension

✅ 리스트?

  • 파이썬에서 리스트는 한 개 이상의 데이터를 그룹화하는 데 사용되는 자료형
  • 리스트를 사용하여 여러 데이터들을 ‘순서’대로 저장하고 관리할 수 있다.
  • 다른 언어와 다르게 파이썬의 리스트는 문자열, 정수, 리스트 등을 모두 포함할 수 있다

✅ 빈 리스트 만들기

a = []
print(a)
b = list()
print(b)
  • []
  • []
  • list() 함수는 다른 자료형을 리스트형으로 변환할 때도 사용하므로 기억해두자
  • list() 함수 : 어떤 자료형을 리스트형으로 변환, 그냥 사용하면 빈 리스트 생성

✅ 서로 다른 자료형을 함께 포함하는 리스트

a = [1,2,'a','b',[5,9]
print(a)
print(type(a))

[1,2,'a','b',[5,9]
<class 'list'>

  • 파이썬 리스트의 특징
    • 리스트는 하나 이상의 데이터를 저장하고, 인덱스를 사용해서 각 항목에 접근할 수 있다
    • 서로 다른 자료형을 함께 사용할 수 있다
    • for문을 사용하여 리스트를 나열할 경우 리스트의 크기에 상관없이 모든 리스트 데이터를 나열할 때까지 루프가 반복된다. 따라서 인덱스 오류를 피하기 쉽다.

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

📍 리스트 인덱싱

a = [1,2,'a','b',[5,9]]
print(a[1])
print(a[0]+a[1])
print(a[2])
print(a[2]+a[3])
print(a[4])
print(a[-1])

2
3
a
ab
[5,9][5,9]

  • 그럼 [5,9]에 접근하려면?
    • X = a[4] -> X[0] = 5, X[1] = 9
    • a[4][0]
a = [1,2,'a','b',[5,9]]
print(a[4])
print(a[4][0])
print(a[4][1])

[5,9]
5
9

리스트 슬라이싱

a = [1,2,a],]b],[5,9]
print(a[1,4])
print(a[:4])
print(a[1:])
print(a[-4:-1])

[2,'a','b']

[1,2,'a','b']

[2,'a','b',[5,9]

[2,'a','b']

  • 그럼 리스트를 뒤집을려면?
  • reverse(), reversed() 메소드를 사용하면 쉽게 뒤집을 수 있다.
lst = [0,10,20,40]
lst.reverse()
print(lsst)

[40,20,10,0]

lst = [1,2,4,3,5]
print(list(reversed(lst)))

[5,3,5,2,1]

  • reverse() : 아무런 값도 반환하지 않지만 리스트에 있는 값의 순서를 뒤집는다
  • reversed() : 순서가 거꾸로 뒤집힌 리스트를 반환
  • 하지만 아주 기본적인 방법으로 뒤집을수도 있다.
lst = [1,2,3,4,5]
lst2 = lst[::-1]

[5,4,3,2,1]

✅ 리스트에 데이터 삽입/삭제/수정

📍 삽입 : append(), extend(), +(더하기)연산자, insert()

append() : 한개를 삽입할때

a = []
a.append(1)
print(a)
b = ['딸기','귤']
b.append('수박')
print(b)

[1]

['딸기', '귤', '수박']

extend() : 새로운 항목을 여러 개 추가하고자 할 때

a = []
a.extend([1,2])
print(a)
b = ['딸기','귤']
b.extend(['수박','포도'])
print(b)

[1,2]

['딸기', '귤', '수박', '포도']

append(), extend()비교

a = ['딸기', '귤', '수박']
a.append([1,2])
print(a)
b = ['딸기', '귤', '수박']
b.extend([1,2])
print(b)

['딸기', '귤', '수박', [1,2]]

['딸기', '귤', '수박', 1, 2]

+ 연산자

a = []
a = a + [1,2]
print(a)
b = ['딸기', '귤']
b = b + ['수박', '포도']
print(b)

[1,2]

['딸기', '귤', '수박', '포도']

insert() : 원하는 위치에 삽입

a = ['딸기', '귤', '수박']
a.insert(1, '포도')
print(a)

['딸기','포도', '귤', '수박']

  • 🖍 가장 많이 하는 실수 :
    리스트는 존재하지 않는 데이터 항목에 접근할 수 없다!!!

📍 리스트 수정

a = [1,2,3,4,5]
a[1] = 20
print(a)
a[2:4] = [30,40]
print(a)

[1, 20, 3, 4, 5]

[1, 20, 30, 40, 5]

📍 리스트 삭제 : pop(), del문, 빈 리스트 사용

pop()

a = [1,2,3,4,5]
b = a.pop()
print(a)
print(b)

[1,2,3,4]
5

  • pop()함수는 삭제한 항목을 반환, 반환된 데이터를 저장할 변수가 필요하다.
  • 2행의 변수b가 이에 해당
  • 위처럼 a.pop()은 맨뒤의 데이터를 삭제
  • 그렇다면 지정한 위치의 데이터 삭제는?
a = [1,2,3,4,5]
b = a.pop(2)
print(a)
print(b)

[1,2,4,5]
3

del문

a = [1,2,3,4,5]
del a[1]
print(a)
del a[1:3]
print(a)

[1,3,4,5]

[1,5]

빈 리스트 사용

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

[1,3,4,5]

[1,5]

✅ 리스트의 함수들

📍 리스트 길이 구하기 : len()

a = [9,6,23,67,23,1,23,4,5]
b = len(a)
print(b)

9

📍 리스트에서 특정 항목의 개수 구하기 : count()

a = [9,6,23,67,23,1,23,4,5]
b = a.count(23)
print(b)

3

📍 리스트에서 특정 항목의 위치 구하기 : index()

a = [9,6,23,67,23,1,23,4,5]
b = a.index(23)
print(b)

2

  • 이처럼, 찾는 인자가 여러 개 있을 경우에는 첫번째 위치를 반환하게 된다.

📍 리스트 정렬 : sort()

a = [9,7,10,8,5,7,7,9,3,5]
a.sort()
print(a)
a = [9,7,10,8,5,7,7,9,3,5]
a.sort(reverse=True)
print(a)
b = [9,7,10,8,5,7,7,9,3,5]
c = sorted(b)
print(b)
print(c)
d = sorted(b, reverse = True)
print(b)
print(d)

[3,5,5,7,7,7,8,9,9,10]

[10,9,9,8,7,7,7,5,5,3]

[9,7,10,8,5,7,7,9,3,5]

[3,5,5,7,7,7,8,9,9,10]

[9,7,10,8,5,7,7,9,3,5]

[10,9,9,8,7,7,7,5,5,3]

✅ List Comprehension

  • 여러 줄의 코드를 한 줄로 줄일 수 있음
    • list(expresstion for 변수 in iterable)
    • [expresstion for 변수 in iterable]
cubic_list = list(x**3 for x in range(1,4))
print(cubic_list)

[1, 8, 27]

0개의 댓글