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 |