Khi xử lý list, có thể gặp tình huống cần xử lý chuỗi và lấy từng ký tự riêng lẻ. Bài viết trình bày các cách làm.
Sử dụng list comprehension
Thiết kế vòng lặp qua từng phần tử list, vòng lặp bên trong lấy từng ký tự từ phần tử là chuỗi.
Ví dụ
listA = ['Mon','d','ay'] # Danh sách cho trước
print("Given list : \n", listA)
# Lấy ký tự
res = [i for ele in listA for i in ele] # Kết quả
print("List of characters: \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list : ['Mon', 'd', 'ay'] List of characters: ['M', 'o', 'n', 'd', 'a', 'y']
Sử dụng itertools.chain
Module itertools cung cấp chain(). Dùng nó lấy từng ký tự từ chuỗi trong list và đưa vào list mới.
Ví dụ
from itertools import chain
listA = ['Mon','d','ay'] # Danh sách cho trước
print("Given list : \n", listA)
# Lấy ký tự
res = list(chain.from_iterable(listA)) # Kết quả
print("List of characters: \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list : ['Mon', 'd', 'ay'] List of characters: ['M', 'o', 'n', 'd', 'a', 'y']
Sử dụng join
join() gộp tất cả phần tử thành một chuỗi, sau đó list() tách thành các ký tự riêng lẻ.
Ví dụ
listA = ['Mon','d','ay'] # Danh sách cho trước
print("Given list : \n", listA)
# Chuyển thành ký tự
res = list(''.join(listA)) # Kết quả
print("List of characters: \n", res)
Kết quả
Chạy đoạn mã trên cho kết quả sau:
Given list : ['Mon', 'd', 'ay'] List of characters: ['M', 'o', 'n', 'd', 'a', 'y']