Python asterisk(*)
Python에서 asterisk(*
)은 일반적인 값의 곱하기 외에 여러 기능을 포함하고 있습니다.
복제
문자열, 리스트 등의 자료형을 여러 개로 복제할 수 있습니다.
print('*' * 20)
test_list = [1] * 10
print(test_list)
# 출력
********************
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
가변인자 (Variable Length Parameter)
함수의 parameter를 다양한 형태로 받을 수 있도록 합니다. asterisk를 하나(*
) 붙이면 튜플 형태로, 두 개(**
) 붙이면 dictionary 형태로 받습니다.
def print_func_1(*args):
print(args)
def print_func_2(**kwargs):
print(kwargs)
print_func_1('john', 22, 'male')
print_func_2(name='john', age=22, gender='male')
# 출력
('john', 22, 'male')
{'name': 'john', 'age': 22, 'gender': 'male'}
Unpacking, Packing
dictionary나 list 형태의 자료형을 풀 수 있습니다. 아래 예시는 dictionary를 풀어서 print_member(name='john', age=22, 'gender'='male')
과 동일한 형태로 함수가 실행되도록 합니다. 그리고 list를 풀어서 출력해 []
가 없이 출력되는 것을 확인할 수 있습니다.
def print_member(name, age, gender):
print('name: ', name)
print('age: ', age)
print('gender: ', gender)
member = {
'name': 'john',
'age': 22,
'gender': 'male'
}
print_member(*member)
number_list = [1, 2, 3, 4]
print(*number_list)
# 출력
name: name
age: age
gender: gender
1 2 3 4
이를 활용하면 list를 합칠 수도 있습니다.
test_list_1 = [1, 2, 3, 4]
test_list_2 = [5, 6, 7, 8]
print([*test_list_1, *test_list_2])
# 출력
[1, 2, 3, 4, 5, 6, 7, 8]
이를 활용하면 이런식으로 packing도 가능합니다.
*test_list, = 1, 2, 3, 4
print(test_list)
# 출력
[1, 2, 3, 4]
댓글남기기