Bài toán: cho một danh sách, hoán đổi phần tử đầu và cuối.
Có 4 cách tiếp cận:
Cách 1: Brute-force (biến tạm)
def swapLast(List):
size = len(List)
temp = List[0]
List[0] = List[size - 1]
List[size - 1] = temp
return List
List = ['t','u','t','o','r','i','a','l']
print(swapLast(List))
['l', 'u', 't', 'o', 'r', 'i', 'a', 't']
Cách 2: Chỉ mục âm
def swapLast(List):
size = len(List)
temp = List[0]
List[0] = List[-1]
List[-1] = temp
return List
List = ['t','u','t','o','r','i','a','l']
print(swapLast(List))
['l', 'u', 't', 'o', 'r', 'i', 'a', 't']
Cách 3: Đóng gói/mở gói tuple
def swapLast(List):
get = List[-1], List[0]
List[0], List[-1] = get
return List
List = ['t','u','t','o','r','i','a','l']
print(swapLast(List))
['l', 'u', 't', 'o', 'r', 'i', 'a', 't']
Cách 4: Unpacking mở rộng
def swapLast(List):
start, *middle, end = List
List = [end, *middle, start]
return List
List = ['t','u','t','o','r','i','a','l']
print(swapLast(List))
['l', 'u', 't', 'o', 'r', 'i', 'a', 't']
Kết luận
Đã học 4 cách hoán đổi phần tử đầu và cuối danh sách.