Khi cần trích xuất phần tử nằm trong nhiều phạm vi chỉ số khác nhau, ta dùng extend(), vòng lặp và slicing.
Ví dụ
my_list = [13, 21, 81, 10, 13, 17, 22, 18, 11, 90, 0]
print("List gốc:")
print(my_list)
print("Sau sắp xếp:")
my_list.sort()
print(my_list)
range_list = [(2, 4), (7, 8), (1, 2), (2, 7)]
my_result = []
for element in range_list:
my_result.extend(my_list[element[0] : element[1] + 1])
print("Kết quả trích xuất:")
print(my_result)
print("Sau sắp xếp:")
my_result.sort()
print(my_result)
Kết quả đầu ra
List gốc: [13, 21, 81, 10, 13, 17, 22, 18, 11, 90, 0] Sau sắp xếp: [0, 10, 11, 13, 13, 17, 18, 21, 22, 81, 90] Kết quả trích xuất: [11, 13, 13, 21, 22, 10, 11, 11, 13, 13, 17, 18, 21] Sau sắp xếp: [10, 11, 11, 11, 13, 13, 13, 13, 17, 18, 21, 21, 22]
Giải thích
- List đã sắp xếp: [0, 10, 11, 13, 13, 17, 18, 21, 22, 81, 90].
- Phạm vi (2,4) → index 2,3,4 → [11,13,13].
- Phạm vi (7,8) → index 7,8 → [21,22].
- Phạm vi (1,2) → index 1,2 → [10,11].
- Phạm vi (2,7) → index 2..7 → [11,13,13,17,18,21].
extendnối tiếp các phần tử, cho phép trùng lặp.
Lưu ý: Phạm vi inclusive (bao gồm cả đầu và cuối) do element[1] + 1.