Python - Python 리스트와 튜플 사용하기
Python
- Python 기본
- Python 숫자 계산하기
- Python 변수 만들기
- Python 출력 방법
- Python 불과 비교, 논리 연산자
- Python 문자열 사용하기
- Python 리스트와 튜플 사용하기
- Python 시퀀스 자료형 활용하기
- Python 딕셔너리 사용하기
- Python if 조건문으로 특정 조건일 때 코드 실행하기
- Python else를 사용하여 두 방향으로 분기하기
- Python elif를 사용하여 두 방향으로 분기하기
- Python for 반복문
- Python while 반복문
- Python break, continue로 반복문 제어하기
- Python 중첩루프
- Python FizzBuzz 문제
- Python 터틀 그래픽스로 그림 그리기
- Python 리스트와 튜플 응용하기
- Python 리스트와 튜플 응용하기 - 2
- Python 2차원 리스트 사용하기
- Python 문자열 응용하기
- Python 딕셔너리 응용하기
- Python 세트 사용하기
- Python 파일 사용하기
- Python 회문 판별과 N-gram 만들기
- Python 함수 사용하기
- Python 함수에서 위치 인수와 키워드 인수 사용하기
- Python 함수에서 재귀호출 사용하기
- Python 람다 표현식 사용하기
- Python 클로저 사용하기
- Python 클래스 사용하기
- Python 클래스 속성과 정적, 클래스 메서드 사용하기
- Python 클래스 상속 사용하기
- Python 두 점 사이의 거리 구하기
- Python 예외 처리 사용하기
- Python 이터레이터 사용하기
- Python 제너레이터 사용하기
- Python 코루틴 사용하기
- Python 데코레이터 사용하기
- Python 정규표현식 사용하기
- Python 모듈과 패키지 사용하기
- Python 모듈과 패키지 만들기
Python 리스트와 튜플 사용하기
1. 리스트 만들기
지금까지는 변ㄴ수에 값을 한 개씩만 저장했다. 여러 값을 저장할 수 있는 리스트를 알아보자. 대괄호로 원하는 값들을 묶어주면 된다.
a = [38, 21, 53, 62, 19]
a
[38, 21, 53, 62, 19]
리스트에 여러 가지 자료형 저장하기
리스트는 문자열, 정수, 실수, 불 등 모든 자료형을 저장할 수 있고 섞어서 저장해도 된다.
person = ['ansang', 31, 9.15, True]
person
['ansang', 31, 9.15, True]
빈 리스트 만들기
빈리스트는 []또는 list()로 만들수 있다.
a = []
a
# []
b = list()
b
# []
range를 사용하여 리스트 만들기
range를 사용해 리스트를 만들어 보자. range는 연속된 숫자를 생성한다. range에 10을 지정하면 0에서 9까지의 숫자를 생성한다.
range(10)
range(0, 10)
a = list(range(10))
a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range는 시작숫자와 끝나는 숫자를 지정할 수도 있다. 이떄도 끝나는 숫자는 생성되지 않는다.
b = list(range(5, 12))
b
[5, 6, 7, 8, 9, 10, 11]
증가폭을 다르게 할수도 있다. 이때는 range(시작, 끝, 증가폭)의 형식으로 작성해주면 된다. 음수로 작성하면 해당 값만큼 감소하는 리스트가 생성된다.
c = list(range(-4, 10, 2))
c
[-4, -2, 0, 2, 4, 6, 8]
d = list(range(10, 0, -1))
d
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
2. 튜플 사용하기
튜플은 리스트처럼 요소를 일렬로 저장하지만, 안에 저장된 요소를 변경, 추가, 삭제할 수 없다. 튜플이 있는 이유는 요소가 변경되지 않고 유지되어야할 때 사용한다. 변수에 값을 저장할때 ()로 묶어주거나 괄호로묶지 않고 ,로 값만 콤마로 구분해도 튜플이 된다.
a = (1, 2, 3, 4, 5, 6, 7)
a
# (1, 2, 3, 4, 5, 6, 7)
a = 1, 2, 3, 4, 5, 6, 7
a
# (1, 2, 3, 4, 5, 6, 7)
튜플도 리스트 처럼 여러 자료형을 섞어서 저장할 수 있다.
person = ('ansang', 31, 9.15, True)
person
('ansang', 31, 9.15, True)
not은 논리값을 뒤집는다. not True는 False가 되고, not False는 True가 된다. 여기서 and, or, not 논리 연산자가 식 하나에 들어있으면 not, and, or순으로 판단한다.
not True and False or not False
# False and False or True
# False or True
# True
순서가 헷갈릴 때는 괄호로 판단 순서를 명확히 나타내 주는 것이 좋다.
((not True) and False) or (not False)
# True
요소가 한 개 들어있는 튜플 만들기
함수 클래스를 사용하다보면 값이 아닌 튜플을 넣어야 하는 경우도 있다. 이때 요소가 하나인 튜플을 사용해야한다.
아래와 같이 요소가 한개 있는 튜플을 만들면 그냥 값이된다.
a = (38)
a
38
요소가 하나인 튜플을 만들 때는 ()안에 값을 넣은후 ,를 붙여준다. 또는 괄호로 묶지 않고 값 한개에 ,를 붙여도 된다.
a = (38,)
a
# (38,)
a = 38,
a
# (38,)
range를 사용하여 튜플 만들기
리스트와 마찬가지로 range를 사용해 튜플을 만들어 보자.
a = tuple(range(10))
a
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
b = tuple(range(5, 12))
b
(5, 6, 7, 8, 9, 10, 11)
c = tuple(range(-4, 10, 2))
c
(-4, -2, 0, 2, 4, 6, 8)
튜플을 리스트로 만들고 리스트를 튜플로 만들기
튜플과 리스트는 요소를 변경, 추가, 삭제할 수 있는지 없는지만 다를 뿐 기능과 형태는 같다. 따라서 튜플을 리스트로 만들거나 리스트를 튜플로 만들 수도 있다.
a = [1, 2, 3]
a
[1, 2, 3]
tuple(a)
(1, 2, 3)
반대로 list안에 튜플을 넣으면 새 리스트가 생성된다.
b = (4, 5, 6)
b
(4, 5, 6)
list(b)
[4, 5, 6]
list와 tuple안에 문자열을 넣으면 문자 리스트, 문자 튜플이 생성된다.
list('hello')
['h', 'e', 'l', 'l', 'o']
tuple('hello')
('h', 'e', 'l', 'l', 'o')
리스트와 튜플을 사용하면 변수 여러개를 한번에 만들 수 있다. 이떄 변수의 갯수와 리스트의 요소 갯수는 같아야한다.
a, b, c = [1, 2, 3]
d, e, f = (4, 5, 6)
print(a, b, c)
1 2 3
print(d, e, f)
4 5 6
리스트와 튜플 변수로도 변수 여러개를 만들 수 있다. 다음과 같이 리스트와 튜플의 요소를 변수 여러 개에 할당하는 것을 리스트 언패킹(list unpacking), 튜플 언패킹(tuple unpacking)이라고 한다.
x = [1, 2, 3]
a, b, c = x
print(a, b, c)
1 2 3
y = (4, 5, 6)
d, e, f = y
print(d, e, f)
4 5 6
‘입력 값을 변수 두 개에 저장하기’에서 사용한 input().split()은 리스트를 반환한다. 그래서 리스트 언패킹 형식으로 입력 값을 변수 여러 개에 저장할 수 있었다.
input().split()
10 20
['10', '20']
x = input().split()
10 20
a, b = x # a, b = input().split()과 같음
print(a, b)
10 20
리스트 패킹(list packing)과 튜플 패킹(tuple packing)은 변수에 리스트 또는 튜플을 할당하는 과정을 뜻한다.
a = [1, 2, 3] # 리스트 패킹
b = (1, 2, 3) # 튜플 패킹
c = 1, 2, 3 # 튜플 패킹
Subscribe to My Coding Practice Gym
Get the latest posts delivered right to your inbox