Trong bài viết này, mình sẽ chém gió về một số cách sử dụng khác nhau của a.k.a "*" trong Python
Tạo collections với các phần tử lặp lại:
collections = [1, 2, 3] * 2
print(collections)
# output: [1, 2, 3, 1, 2, 3]
Chúng ta hoàn toàn có thể áp dụng tương tự với tuple hay chuỗi:
collections = (1, 2, 3) * 2
print(collections)
# output: (1, 2, 3, 1, 2, 3)
strings = "VN" * 2
print(strings)
# output: VNVN
Unpacking tập hợp tuần tự thành các biến riêng biệt
collections = (4, 5)
x, y = collections
print(x, y)
# output: 4 5
Với các biến mà ta không sử dụng ta có thể sử dụng _ để biểu diễn:
data = ['VietNam', 84, 100, 'VN']
country, country_code, population, short_name = data
print(country, country_code, population, short_name)
# output: VietNam 84 100 VN
country, country_code, population, _ = data
print(country, country_code, population)
# output: VietNam 84 100
Các tiêu đề sau mình xin mạn phép để tiếng anh vì dịch ra thì nghe nó cũng khá thô và cũng không sát nghĩa lắm :V
Unpacking Elements from Iterables of Arbitrary Length Lấy tất cả các phần tử ở giữa của list:
grades = [1, 2, 3, 4, 5]
first, *middle, last = grades
print(first, middle, last)
# output: 1 [2, 3, 4] 5
Lấy tất cả các phần tử còn lại của list:
record = ('VN', 'vn@example.com', '0773555121', '0847555212')
name, email, *phone_numbers = record
print(name, email, phone_numbers)
# output: VN vn@example.com ['0773555121', '0847555212']
Dùng vài cái * một lúc nó sẽ như này:
record = ('FUKADA', 50, 123.45, (12, 18, 2012))
name, *_, (*_, year) = record
print(name, year)
# output: FUKADA 2012
args and kwargs Hãy thử xem hàm dưới đây:
def calculate(a,b,*args,**kwargs): print(a, b) print(arg) for key in kwargs: print(key, kwargs[key])
calculate(2, 3, 4, 5, 6, num1=8,num2=9)
# output: 2 3
# (4, 5, 6)
# num1 8
# num2 9
Merging Different Types Of Iterables
var1 = (1,2,3)
var2 = {4,5,6}
collections = [*var1, *var2]
print(collections)
#output: [1, 2, 3, 4, 5, 6]
Merging Two Dictionaries
dict1 = {'key1':1,'key2':2}
dict2 = {'key3':3,'key4':4}
dict = {**dict1, **dict2}
print(dict)
#output: {'key1': 1, 'key2': 2, 'key3': 3, 'key4': 4}