Trong bài này, bạn sẽ tiếp tục học về kiểu dữ liệu chuỗi trong Python nhưng với kiến thức nâng cao hơn bài trước.
Duyệt các ký tự trong chuỗi
Bạn có thể dùng vòng lặp while hay for để duyệt các ký tự trong chuỗi ở Python.
Dùng câu lệnh while
Ví dụ dùng vòng lặp while như sau.
s = "dammio" index = 0 while index < len(s): letter = s[index] print letter index = index + 1
Dùng câu lệnh for
Nếu dùng vòng for đoạn code sẽ đơn giản hơn nhiều. Bạn sẽ dùng thêm toán tử in, tức là lấy một ký tự trong chuỗi cho trước.
s = "dammio" # Lấy mỗi ký tự đặt vào biến char và hiển thị for char in s: print char
Gán một phần tử trong chuỗi
Bạn không thể gán trực tiếp cho một phần tử trong chuỗi, câu lệnh sau sẽ phát sinh lỗi.
s = "dammio" s[0] = "t" # Lỗi: 'str' object does not support item assignment
Do đó để gán cho phần tử, bạn nên tạo chuỗi mới và gán cho chuỗi này như sau.
s = "dammio.com" s1 = "t" + s[1:] # Kết quả: s1 = "tammio.com" print(s1)
Tìm kiếm ký tự trong chuỗi
Tương tự việc duyệt chuỗi, bạn cũng có thể tìm các ký tự trong chuỗi bằng vòng lặp while hoặc for. Trong ví dụ sau, def là một hàm trong Python với 2 đối số đầu vào word và letter. Nếu tìm thấy thì trả về vị trí tìm thấy, nếu không tìm thấy hàm trả về kết quả là -1.
def find(word, letter): index = 0 while index < len(word): if word[index] == letter: return index index = index + 1 return -1 print(find("dammio", "a")) #Kết quả là 1
Ngoài ra, bạn có thể dùng hàm find() để tìm kiếm các ký tự trong chuỗi. Hàm find() được định nghĩa như sau:
find(keyword, [index1], [index2])
Trong đó keyword là ký tự/cụm từ cần tìm, index1 là vị trí bắt đầu tìm, index2 là vị trí kết thúc. Index1 và index2 là tham số tùy chọn, có thể có hoặc không. Nếu không tìm thấy hàm này trả về -1.
Hãy cùng xem ví dụ dùng hàm find() sau.
s = "dammio" kq1 = s.find("m") print(kq1) #Kết quả: 2 --- do m xuất hiện đầu tiên ở vị trí 2 kq2 = s.find("m", 3) print(kq2) #Kết quả: 3 --- do tìm từ vị trí 3 trở đi kq3 = s.find("m", 4, 5) print(kq3) #Kết quả: -1 --- không tìm thấy m trong đoạn index từ 4 đến 5
Đếm số lần ký tự xuất hiện trong chuỗi
Tương tự, bạn có thể dùng vòng for duyệt từng ký tự trong chuỗi, nếu tìm thấy thì tăng biến đếm count lên 1 và xuất kết quả.
word = "dammio" count = 0 for letter in word: if letter == 'm': count = count + 1 print(count) #kết quả: 2
Tìm các ký tự xuất hiện trong cả hai chuỗi
Để tìm các ký tự xuất hiện trong cả 2 chuỗi cho trước, cách đơn giản là dùng vòng for và toán tử in.
def in_both(word1, word2): for letter in word1: if letter in word2: print(letter) in_both('dammio', 'dormy') #Kết quả là: d, m, m, o
So sánh chuỗi
Bạn có thể so sánh chuỗi trong Python bằng toán tử == hoặc <, > như sau.
word = "bana" if word == 'banana': print('Hai chuỗi bằng nhau') if word < 'banana': print('Chuỗi ban bé hơn banana') elif word > 'banana': print('Chuỗi ban lớn hơn banana') #Kết quả: Chuỗi ban bé hơn banana.
Lưu ý Python không xử lý trường hợp hoa, thường.
Kết luận
Ngoài ra, còn có hàng chục hàm và cách thức để xử lý chuỗi, bạn sẽ học dần khi tiếp xúc với Python qua từng dự án, bài toán cụ thể. Như vậy, bạn đã tìm hiểu được một số phương thức và phương pháp xử lý chuỗi thường dùng trong Python. Mời bạn theo dõi bài tiếp theo để biết đến Python nhiều hơn.
- APA:
Dammio. (2019). [Python] Phần 7: Kiểu dữ liệu chuỗi nâng cao. https://www.dammio.com/2019/04/16/python-phan-7-kieu-du-lieu-chuoi-nang-cao.
- BibTeX:
@misc{dammio,
author = {Dammio},
title = {[Python] Phần 7: Kiểu dữ liệu chuỗi nâng cao},
year = {2019},
url = {https://www.dammio.com/2019/04/16/python-phan-7-kieu-du-lieu-chuoi-nang-cao},
urldate = {2024-12-08}
}
[…] [Python] Phần 7: Kiểu dữ liệu chuỗi nâng cao – 333 lượt xem […]