반응형
파이썬의 리스트와 튜플은 유사한 기능을 가지고 있는 자료형입니다. 리스트와 튜플의 특징은 여러 자료를 하나로 묶어서 표현하는 데 있습니다. 또한, 순서도 중요한 기능을 합니다. 여러 자료를 묶어서 순서에 따라 가지고 있는 것을 collections라고 합니다. 자료의 종류에는 제한이 없다는 특징이 있습니다.
리스트 안에는 온갖 종류의 자료가 들어갈 수 있습니다. 리스트는 자료를 추가하거나 사젝하는 등 다양한 기능이 제공됩니다. 제가 생각하기에는 파이썬에서 제공하는 collections에서 리스트가 가장 유연하다고 생각합니다. 다만, 여러 기능이 있다보니 속도 문제가 발생할 수도 있습니다. 그래서 튜플과 딕셔너리에 비해서 속도가 느린 편입니다.
코드를 통해서 리스트의 특징에 대해 알아봅시다.
# 리스트(list)
print("리스트의 생성")
x= [] # 비어있는 리스트
y = list() #리스트 생성자를 이용한 비어있는 리스트
z= [5,2,6,3]
a = ['Hello','World']
b= ['Hello', 1,2]
print(f'x={x}', type(x))
print(f'y={y}', type(y))
print(f'z={z}', type(z))
print(f'a={a}', type(a))
print(f'b={b}', type(b))
print("리스트에서 자료에 접근하는 방법(인덱싱)")
x = [ 10, 20, 30, 40, 50]
print(x[0],x[1],x[2],x[3],x[4])
# 5이상은 out of range
print(x[-1]) # -1 : 마지막 원소
print(x[-2]) # -2 : 끝에서 두번째 원소
x[2] = 100 # 리스트 원소를 변경
print(x)
print()
print("리스트 슬라이싱 하기(리스트에서 리스트 만들기)")
x = [ 10, 20, 30, 40, 50]
print(x[1:4]) # [시작위치 : 마지막위치 -1]
print(x[:4]) # 0부터 : 마지막위치 -1 --> 시작위치가 0인 경우
print(x[2:]) # 시작위치 : 마지막위치가 끝까지인 경우
print(x[::2]) # 처음부터 끝까지, 2개씩 건너뛰기 --> 시작위치 : 마지막위치 : 스텝
print(x[::-1]) # 리스트 숫자 뒤집기
#리스트 슬라이스를 이용한 리스트 수정
print(x[2:4])
x[2:4] = [1, 2, 3, 4, 5]
print(x)
x = [ 10, 20, 30, 40, 50]
x[2:4] = [1,2]
print(x)
x = [ 10, 20, 30, 40, 50]
x[2:4] = []
print(x)
print()
print('리스트에 자료 추가하기')
x= [10, 20, 30]
print(x)
x.append(40)
print(x)
x = x + [50, 60]
print(x)
x= [-10, 0] + x
print(x)
x += [70, 80] # x=x+[] 줄이기
print(x)
x.insert(2, 100) #2번 인덱스에 자료 100 추가
print(x)
print()
print('리스트에서 자료 삭제하기')
x=[10, 20, 30, 40, 50, 60, 70]
print(x)
x.remove(30) #원하는 값 제거하기
print(x)
del x[1] # 원하는 인덱스에 있는 값 제거
print(x)
val = x.pop() # 팝은 마지막 제료를 제거
print(val)
print(x)
val = x.pop(0) # 팝에 인덱스
print(val)
print(x)
print()
print('리스트의 다양한 기능')
x= [40, 10, 60, 30, 1090, 55, -43]
print(x)
x.sort() #리스트를 오름차순으로 정렬
print(x)
x.sort(reverse = True) # 리스트를 내림차순으로
print(x)
x.reverse() # 리스트 뒤집기
print(x)
x.index(30) # 해당 값이 있는 인덱스를 제공
print(x.index(30))
print(x.count(6)) # 리스트에 해당하는 값의 갯수를 출력
print(len(x)) # 리스트의 길이를 알 수 있다.
튜플
튜플 자료형은 리스트와 유사하나 불변인 자료형입니다. 불변 자료형이므로 자료를 추가하거나 삭제할 수 없습니다.
# 튜플
print('튜플의 생성')
x= tuple() # 빈 튜플 생성
print(f'x={x}',type(x))
x= (2,4,6)
print(f'x={x}', type(x))
x = ((2,4,5,6), [1,2,3])
print(f'x={x}', type(x))
x=(10,)
print(f'x={x}', type(x))
print()
print('튜플의 자료에 접근하기(인덱싱, 슬라이싱)')
x=(1,2,3,4,5,6)
print(x[4],type(x[4]))
print(x[2:6], type(x[2:6]))
print()
print("리스트와 다른 부분")
print('튜플은 자료의 추가/삭제가 불가하다')
x =(10,20,30,40,50)
# del x[2] 자료 삭제 불가
# x.append(5) # 튜플은 자료 추가 기능 x
x = x+(60,) # 튜플 이어붙이기 가능
print(f'x={x}', type(x))
print()
print('튜플에서 제공되는 기능')
x= (10 ,20,20,30,30,40,50)
print(x.count(30))
print(x.index(20)) # 가장 앞에 있는 인덱스가 출력됨
print(len(x))
y= sorted(x) # x를 리스트로 바꾼 다음 정렬함
print(y, type(y))
y = tuple(y)
print(y,type(y))
반응형
'파이썬 이야기' 카테고리의 다른 글
Part 18. 문자열 (0) | 2022.07.28 |
---|---|
Part 18. 집합 자료형 (0) | 2022.07.25 |
Part 16. 파이썬 숫자형 자료형 (0) | 2022.07.23 |
Part 15. 파이썬 자료형 종류 (0) | 2022.07.23 |
Part 14. 파이썬 언어 변수의 할당 (0) | 2022.07.23 |
댓글