Data Navigator

list packing, list unpacking, tuple packing, tuple unpacking 본문

Python

list packing, list unpacking, tuple packing, tuple unpacking

코딩하고분석하는돌스 2021. 1. 2. 23:28

파이썬을 이용하면서 가장 빈번하게 사용하게 되는 자료형은 list 같다. 

이번 글에서는 리스트와 튜플을 만드는 법(list/tuple packing)

그리고 list와 tuple의 값을 이용해서 여러 변수에 한 번에 담는 법(list/tuple unpacking)을 소개한다.

 

 

1. list packing 리스트 만들기

 

1) 변수에 [ ]를 이용해서 직접 만들기

a = [1, 2.0, -3, '사', True] 

list는 자료형이 달라도 다 들어간다.

 

2) range를 이용한 list 만들기

b = list(range(-4, 10, 2))
b
[-4, -2, 0, 2, 4, 6, 8]

 

3)  input() 함수로 값을 입력받아 split() 함수로 list 만들기

d = input().split()
print(d)
print(type(d))

# 10, 20, 30, 40, 50 입력

['10', '20', '30', '40', '50']     # print(d)의 결과
<class 'list'>      # print(type(d))의 결과

inout().split() 을 이용해서 변수 d에 10 20 30 40 50 을 입력해서 담으면 list 가 형성된다. 

 

 

2. list unpacking 리스트의 값을 이용해 여러 개의 변수 만들기

 

1) 리스트 안에 있는 1, 2, 3을 각각 변수 a, b, c에 unpacking해서 담음

a, b, c = [1, 2, 3]
print(a, b, c)
1 2 3

 

2) input() 함수로 값을 입력받아 split() 함수로 만든 리스트를 5개의 함수에 unpacking해서 나누어 담기

 

d = input().split()
print(d)
print(type(d))

# 10, 20, 30, 40, 50 입력

['10', '20', '30', '40', '50']     # prind(d)의 결과
<class 'list'>      # print(type(d))의 결과

inout().split() 을 이용해서 변수 d에 10 20 30 40 50 을 입력해서 담으면 list 가 형성된다. 

하지만 변수 5개를 지정하면 list가 unpacking되면서 한번에 담긴다.

 

a, b, c, d, e = input().split()
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)

# 10 20 30 40 50 입력
# 결과
10
20
30
40
50

input().split()을 이용해서 10 20 30 40 50을 입력해서 1개의 변수에 담으면 리스트가 되지만

입력한 값 만큼 변수를 앞에 지정해주면 list가 unpacking되면서 a, b, c, d, e에 값이 차례대로 담긴다.

 

 

2. tuple packing 튜플 만들기

 

tuplelist와 거의 비슷하지만 자료의 추가 삭제가 되지 않는 자료형이다. 

 

1) 변수에 ()를 이용해서 직접 만들기

a = (1, 2.0, -3, '사', True) 

list는 자료형이 달라도 다 들어간다.

 

 

2) range를 이용한 tuple 만들기

b = tuple(range(-4, 10, 2))
b
(-4, -2, 0, 2, 4, 6, 8)

 

3)  input() 함수로 값을 입력받아 split() 함수로 tuple 만들기

d = tuple(input().split()) #입력받아 만들어진 list를 tuple로 형변환
print(d)
print(type(d))

# 10, 20, 30, 40, 50 입력


('10', '20', '30', '40', '50')  # print(d)의 결과
<class 'tuple'> # print(type(d))의 결과

inout().split() 을 이용해서 변수 d에 10 20 30 40 50 을 입력해서 담으면 list 가 형성되는데

그 list를 tutple()로 형변환해서 tuple로 만들 수 있다.  

 

 

2. tuple unpacking 리스트의 값을 이용해 여러 개의 변수 만들기

 

1) tuple 안에 있는 1, 2, 3을 각각 변수 a, b, c에 unpacking해서 담음

a, b, c = (1, 2, 3)
print(a, b, c)
1 2 3

 

2) input() 함수로 값을 입력받아 split() 함수로 만든 리스트를 5개의 함수에 unpacking해서 나누어 담기

 

d = tuple(input().split())
print(d)
print(type(d))

# 10, 20, 30, 40, 50 입력

('10', '20', '30', '40', '50')     # prind(d)의 결과
<class 'tuple'>     # print(type(d))의 결과

inout().split() 을 이용해서 변수 d에 10 20 30 40 50 을 입력해서 담으면 list 가 형성

형성된 list를 tuple()로 형변환

 

list와 동일하게 tuple도 변수 5개를 지정하면 tuple이 unpacking되면서 각각의 변수에 담긴다.

 

a, b, c, d, e = tuple(input().split())
print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)

# 10 20 30 40 50 입력
# 결과
10
20
30
40
50

input().split()을 이용해서 10 20 30 40 50을 입력해서 1개의 변수에 담으면 리스트가 되지만

입력한 값 만큼 변수를 앞에 지정해주면 list가 unpacking되면서 a, b, c, d, e에 값이 차례대로 담긴다.