Khi cần tách các phần tử trong list theo dấu phân cách (delimiter), ta dùng split() và list comprehension.
Ví dụ
my_list = ["89@21", "58@51", "19@61", "11@10", "32@65", "34@45", "87@90", "32@21", '1@345']
print("Danh sách gốc:")
print(my_list)
print("Sau sắp xếp:")
my_list.sort()
print(my_list)
my_delimiter = "@"
print("Dấu phân cách:", my_delimiter)
result_before_delim = [ele.split(my_delimiter)[0] for ele in my_list]
result_after_delim = [ele.split(my_delimiter)[1] for ele in my_list]
print("Phần trước delimiter:")
print(result_before_delim)
print("Phần sau delimiter:")
print(result_after_delim)
Kết quả đầu ra
Danh sách gốc: ['89@21', '58@51', '19@61', '11@10', '32@65', '34@45', '87@90', '32@21', '1@345'] Sau sắp xếp: ['11@10', '19@61', '1@345', '32@21', '32@65', '34@45', '58@51', '87@90', '89@21'] Dấu phân cách: @ Phần trước delimiter: ['11', '19', '1', '32', '32', '34', '58', '87', '89'] Phần sau delimiter: ['10', '61', '345', '21', '65', '45', '51', '90', '21']
Giải thích
ele.split('@')tách chuỗi thành list: ['89', '21'].- [0] lấy phần trước, [1] lấy phần sau.
- Kết quả là list string, có thể chuyển int:
int(ele.split('@')[0]).
Cách hiệu quả hơn (split 1 lần):
parts = [ele.split('@') for ele in my_list]
before = [p[0] for p in parts]
after = [p[1] for p in parts]