Giúp đỡ cách tìm vị trí của kí tự thứ n trong một chuỗi cho trước

Cách của bạn cũng khá hay khi sử dụng hàm enumerate() để lấy luôn cả index lẫn giá trị của ký tự trong chuỗi. Mình cũng thích cách sử dụng toán tử ba ngôi trong câu lệnh if để viết gọn code của bạn.

Toán tử 3 ngôi trong python là một toán tử được cấu tạo bởi ba đối số gồm điều kiện , kết quả khi điều kiện đúngkết quả khi điều kiện sai . Kết quả ở đây có thể là một giá trị được trả về, cũng có thể là một xử lý sẽ thực hiện sau đó tùy thuộc vào điều kiện chỉ định là đúng hay sai.
Nguồn : Toán tử 3 ngôi trong python và cách rút gọn lệnh điều kiện | Lập trình căn bản - học lập trình theo phong cách Nhật Bản.

Tuy nhiên cách viết này cũng sẽ khá khó cho các bạn mới học python, nên mình chọn cách dùng lệnh for i in range trực quan và dễ hiểu hơn.

Về code của mình chỉ tìm được 1 ký tự, thì chủ thớt chỉ yêu cầu tìm vị trí của một ký tự trong chuỗi thôi mà nhỉ?

Còn nếu so sánh về code nào hay nhất, thì mình sẽ chọn đáp án của bạn @hibariwl ở phần trên với cách sử dụng list comprehension trong python. Đây là cách thông minh và đơn giản nhất mà mình biết, mặc dù hơi khó hiểu cho người mới học.

arr = "Dai hoc Bach Khoa Ha noi"
print ([i for i in range(len(arr)) if arr[i] == 'a'][2])

List comprehension không những giúp chúng ta tạo ra các list đơn giản, mà còn có thể tạo ra các list đa chiều có cấu trúc phức tạp mà với các phương pháp tạo list thông thường, bạn cần rất nhiều xử lý để hoàn thành được nó.
Nguồn : Sử dụng list comprehension trong Python | Lập trình căn bản - học lập trình theo phong cách Nhật Bản.

Thân!

Bài đó là trả lời cho @codedao123 ấy mà.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?