본문 바로가기
Study/Python

04. Python 리스트와 튜플 총정리

by 겸 2019. 7. 11.

1. 리스트

리스트 만들기

a = [1,2,3,4,5] #리스트 = [값, 값,값]
a = ['hello',1,1.5,True] #모든 자료형,리스트, 튜플, 함수 등 저장 가능, 섞어서도 가능

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

c = list(range(10)) #리스트에 0부터 9까지의 수가 들어감
c = list('Hello') #리스트 안에 H,e,l,l,o 한글자씩 들어감

 

리스트의 요소에 접근

a = [1,2,3,4,5]
a[0] #1출력
a[4] #5출력

a[-1] #리스트의 뒤에서 첫번째 요소(인덱스-1) 출력
#5출력
a[-5] #리스트의 뒤에서 다섯번째 요소(인덱스 -5) 출력
#1출력

 

리스트의 요소 개수 구하기

a = [1,2,3,4,5,6,7,8,9,10]
len(a) #len(리스트)
#10출력

 

리스트 일부만 가져오기

a = [1,2,3,4,5,6,7,8,9,10]
a[0:4] #리스트[시작인덱스:끝인덱스]
#[1,2,3,4]출력 (끝인덱스는 가져오려는 인덱스보다 1을 더 크게 지정해야됨)

a[1:1]
#[] 출력

a[2:3]
#[3]출력

a[4:-1] #-1은 뒤에서 첫번째 요소인데 끝인덱스는 가져오는 인덱스보다 1을 더 크게 지정
#따라서 실제로는 뒤에서 두번째 (-2)요소까지 가져옴
#[5,6,7,8,9] 

a[:7] #처음부터 7개 출력
a[7:] #7부터 끝까지 출력

 

리스트 조작하는 메소드

(1) 리스트 값 추가 append(값)

a =  [10,20]
a.append(30) #append(값)
a
#[10,20,30]출력

(2) 맨 뒤에 다른 리스트 연결 extend(리스트)

a=[10]
a.extend([20,30]) #extend(리스트)
a
#[10,20,30]출력

(3) 특정 인덱스에 값을 추가 insert(인덱스, 값)

a=[10,30]
a.insert(1,20) #insert(인덱스, 값)
a
#[10,20,30] 출력
a.insert(len(a),40) #insert(len(리스트),값)
a
#[10,20,30,40]출력

(4) 특정값을 찾아서 제거 remove(값)

a=[10,20,30]
a.remove(20) #20 찾아서 삭제
a
#[10,30]출력

(5) 마지막 값을 삭제한 뒤 삭제한 값을 반환 pop() & 특정 인덱스 값 삭제한 뒤 반환 pop(인덱스)

a=[10,20,30] 
a.pop()
#30출력
a
#[10,20]출력

(6) 리스트의 특정 값 인덱스 구하기 index(값)

같은 값이 여러 개일 경우 가장 작은 인덱스를 구함

 

(7) 리스트의 특정 값 개수 구하기 count(값)

 

(8) 값의 순서를 반대로 뒤집음 reverse()

 

(9) 리스트의 값을 작은 순서대로 정렬(오름차순) sort()

내림차순으로 정렬하려면? sort(reverse=True)

 

(9) 리스트의 모든 값 삭제 clear()

 

리스트 값 삭제 del

a=[10,20,30]
del a[1]
a
#[10,30] 출력

a=[10,20,30,40,50]
del a[1:4] #시작 인덱스가 1, 끝 인덱스가 4이므로 인덱스 1부터 3까지 삭제!! 주의
a
#[10,50]출력

del a[:] #시작 인덱스와 끝 인덱스 생략하면 리스트의 모든 값이 삭제
a
#[]출력

 

리스트의 할당과 복사

(1) 리스트의 할당

a=[0,0,0,0,0]
b=a
b[2]=99
a
#[0,0,99,0,0] 출력 실제리스트는 하나이므로 a,b에 모두 반영
b
#[0,0,99,0,0] 출력

a is b
#True 출력 즉, 두 객체가 같다.

(2) 리스트의 복사

a=[0,0,0,0,0]
b=a.copy()
b[2]=99
a
#[0,0,0,0,0]출력
b
#[0,0,99,0,0]출력

a is b
#False 출력

a == b
#True 출력

 

리스트 연산

(1) 리스트 + 리스트는 리스트를 서로 연결함

 

(2) 리스트 * 정수는 특정 횟수만큼 리스트의 요소를 반복함. (0이나 음수를 곱하면 빈리스트 출력)

 

 

반복문으로 리스트 요소 출력

#for문 이용하기
a = [1,2,3,4,5]
for i in a:
	print(i)

#1 2 3 4 5(한 줄씩 출력)

for i in range(len(a)):
	print(a[i])
    
#1 2 3 4 5(한 줄씩 출력)

#while문 이용하기
i=0
while i <len(a)
	print(a[i])
    i+=1

#1 2 3 4 5(한 줄씩 출력)

for index, value in enumerate(a):
	print(index, value)
    #1 2 3 4 5(한 줄씩 출력)
 
 #enumerate에 리스트 넣으면 반복문에서 인덱스와 요소의 값 동시에 꺼내올 수 있음

 

리스트에 특정 값이 있는지 확인하기

a = [1,2,3,4,5]
3 in a
#True출력
3 not in a
#False출력

 

최소 & 최대 값 구하는 함수 min() max()

a=[1,2,3,4,5]
min(a)
#1출력
max(a)
#5출력

 

합 구하는 함수

a = [1,2,3,4,5]
sum(a)
#15출력

 

2. 튜플

튜플 사용하기

a = (1,2,3,4,5) #튜플 = (값,값,값)

튜플도 리스트와 마찬가지로 다양한 자료형과 리스트, 튜플, 함수 등을 넣을 수 있다.

접근할 때도 리스트와 같은 방식으로 a[0] 인덱스를 사용하여 접근한다.

요소의 개수도 len을 사용한다.

 

요소가 1개인 튜플

(11) #값 한개를 괄호로 묶으면 튜플이 아니라 그냥 값임
(11, ) #요소가 한개인 튜플을 만들 때는 괄호로 묶고 콤마 붙이거나 
38, #괄호로 안묶고 값 한개에 콤마 붙임

 

빈 튜플 만들기

a=tuple() 
a=()

 

튜플의 메서드

튜플은 리스트와 달리 append, extend, insert, remove, pop등은 사용할 수 없음

index, count 메서드만 사용가능! 

변경, 삭제를 제외한 기타 기능은 리스트와 같다

 

튜플의 연산자

기존 튜플의 내용을 변경할 수는 없지만 +, *연산자를 사용하여 새로운 튜플을 만들어 낼 수 있음

 

3. 튜플과 리스트의 차이

튜플은 리스트와 달리 요소의 값을 변경하거나 추가할 수 없다. 

튜플은 읽기 전용 자료형이다.

 

튜플에 리스트를 넣는 것은 가능

리스트에 튜플을 넣으면 결국 리스트가 됨

 

4. map 함수 사용

map은 리스트나 튜플의 요소를 지정된 함수로 처리해주는 함수

튜플에 map함수를 사용할 경우, 원본 튜플을 변경하는 것이 아니라 새 튜플 생성

a=[1.1,2.2,3.3,4.4,5.5]
a=list(map(int,a))
a
#[1,2,3,4,5]출력

a=list(map(str,range(5)))
a
#['0','1','2','3','4']출력

 

5. 2차원 리스트와 튜플 사용

a=[[10,20],[30,40],[50,60]]
b=((10,20),(30,40)) 
#리스트 안에 튜플 넣기, 튜플 안에 리스트 넣기 상관없음! 

 

반복문 2차원 리스트 요소 출력

a = [[10,20],[30,40],[50,60]]
for x,y in a:
	print(x,y)
    
#10 20 
#30 40
#50 60 출력

 

반복문으로 2차원 리스트 만들기

a = [] #빈 리스트 생성
for i in range(3):
	line = []
    for j in range(2):
    	line.append(0)
    a.append(line)

print(a)
#[[0,0],[0,0],[0,0]]출력

a = [[0 for j in range(2)] for i in range(3)]
a 
#리스트 표현식을 활용. 위와 같은 결과 출력

a = [[0]*2 for i in range(3)]
a
#for문을 한번 사용하여 같은 결과 출력

 

반복문으로 3차원 리스트 만들기

a=[[[0 for col in range(3)] for row in range(4)] for depth in range(2)]
반응형

'Study > Python' 카테고리의 다른 글

05. Python 문자열  (0) 2019.07.18
03. Python 조건문과 반복문  (0) 2019.07.10
02. Python 기초 2  (0) 2019.06.26
01. Python 기초  (0) 2019.06.24