Cách lấy chỉ mục của nhiều phần tử trong chuỗi python

Khi bạn học viết mã, cuối cùng bạn sẽ học về các danh sách và các thao tác khác nhau mà bạn có thể thực hiện trên chúng

Trong bài viết này, chúng ta sẽ tìm hiểu cách bạn có thể tìm chỉ mục của một phần tử cụ thể được lưu trữ trong danh sách bằng Python

Danh sách trong Python là gì?

Danh sách trong Python là một kiểu dữ liệu được tạo sẵn cho phép chúng ta lưu trữ một loạt các giá trị khác nhau, như số, chuỗi, đối tượng ngày giờ, v.v.

Danh sách được sắp xếp theo thứ tự, có nghĩa là trình tự chúng tôi lưu trữ các giá trị là quan trọng

Liệt kê các chỉ số bắt đầu từ 0 và kết thúc ở độ dài của danh sách trừ đi một. Để biết thêm thông tin chi tiết về loại dữ liệu danh sách, hãy xem hướng dẫn toàn diện này

Hãy xem một ví dụ về danh sách

fruits = ["apple", "orange","grapes","guava"]
type[fruits]
print[fruits[0]]
print[fruits[1]]
print[fruits[2]]

Ở đây, chúng tôi đã tạo một danh sách gồm 4 mục, trong đó chúng tôi thấy rằng mục đầu tiên trong danh sách nằm ở chỉ mục 0, mục thứ hai nằm ở chỉ mục 1, mục thứ ba nằm ở chỉ mục 2, v.v.

Đối với danh sách trái cây, các chỉ số danh sách hợp lệ là 0, 1, 2 và 3

Cách tìm chỉ mục của các mục trong danh sách bằng Python

Hãy làm ngược lại. Tức là, cho một mục trong danh sách, hãy tìm ra chỉ số hoặc vị trí của mục đó trong danh sách

index = fruits.index['orange']
#The value of index is 1

index = fruits.index['guava']
#The value of index is 3

index = fruits.index['banana']
#This raises a ValueError as banana is not present in list

Danh sách Python cung cấp cho chúng ta phương thức chỉ mục cho phép chúng ta lấy chỉ mục của lần xuất hiện đầu tiên của một mục danh sách, như minh họa ở trên.

Chúng ta cũng có thể thấy rằng phương thức chỉ mục sẽ tăng ValueError nếu chúng ta cố gắng tìm chỉ mục của một mục không tồn tại trong danh sách

Để biết thêm chi tiết về phương pháp lập chỉ mục, hãy xem tài liệu chính thức tại đây

Cú pháp cơ bản của phương thức chỉ mục là thế này

list_var.index[item]

Chúng tôi cũng có thể chỉ định một danh sách phụ để tìm kiếm và cú pháp cho danh sách đó là

list_var.index[item, start_index_of_sublist, end_index_of_sublist]

Để minh họa điều này hơn nữa, hãy xem xét một ví dụ

Giả sử chúng ta có danh sách book_shelf_genres trong đó chỉ mục biểu thị số giá sách. Chúng tôi có nhiều giá đựng sách toán. Số kệ cũng bắt đầu từ con số không. Chúng tôi muốn biết kệ nào sau kệ 4 có sách toán nào

book_shelf_genres = ["Fiction", "Math", "Non-fiction", "History", "Math", "Coding", "Cooking", "Math"]
index = book_shelf_genres.index["Math"]
#The value of index is 1

Chúng ta có thể thấy vấn đề ở đây. chỉ sử dụng

index = fruits.index['orange']
#The value of index is 1

index = fruits.index['guava']
#The value of index is 3

index = fruits.index['banana']
#This raises a ValueError as banana is not present in list
2 sẽ cho lần xuất hiện đầu tiên của mục trong danh sách – nhưng chúng tôi muốn biết chỉ mục của "Math" sau kệ 4

Để làm điều đó, chúng tôi sử dụng phương pháp chỉ mục và chỉ định danh sách con để tìm kiếm trong. Danh sách con bắt đầu từ chỉ mục 5 cho đến hết danh sách book_shelf_genres, như được hiển thị trong đoạn mã bên dưới

index = book_shelf_genres.index["Math", 5]
#The value of index is 7

Lưu ý rằng việc đưa ra chỉ số kết thúc của danh sách phụ là tùy chọn. Để tìm mục lục của "Toán" sau ngăn số 1 và trước ngăn số 5, chúng ta chỉ cần làm như sau

index = book_shelf_genres.index["Math", 2, 5]
#The value of index is 4

Cách tìm chỉ mục của một mục danh sách có nhiều lần xuất hiện trong Python

Điều gì xảy ra nếu chúng ta cần biết chỉ mục của một mục danh sách xuất hiện nhiều lần trong danh sách?

Trong trường hợp này, chúng ta có thể tìm thấy nhiều lần xuất hiện bằng cách sử dụng tính năng hiểu danh sách như sau

book_shelf_genres = ["Fiction", "Math", "Non-fiction", "History", "Math", "Coding", \
                     "Cooking", "Math"]

[i for i in range[0, len[book_shelf_genres]] if book_shelf_genres[i]=="Math"]

Như được hiển thị trong đoạn mã này, chúng tôi lặp qua các chỉ số của danh sách. Tại mỗi chỉ mục, chúng tôi kiểm tra xem mục tại chỉ mục đó có phải là Toán hay không. Nếu là môn Toán thì chúng ta lưu trữ giá trị chỉ mục đó trong một danh sách.

Chúng tôi thực hiện toàn bộ quá trình này bằng cách sử dụng khả năng hiểu danh sách, đây chỉ là đường cú pháp cho phép chúng tôi lặp qua danh sách và thực hiện một số thao tác. Trong trường hợp của chúng tôi, chúng tôi đang đưa ra quyết định dựa trên giá trị của mục danh sách. Sau đó, chúng tôi tạo một danh sách mới

Với quy trình này, bây giờ chúng tôi biết tất cả các số kệ có sách toán trên đó

Cách tìm chỉ mục của các mục danh sách trong danh sách các danh sách trong Python

programming_languages = [["C","C++","Java"],["Python","Rust","R"],\
                         ["JavaScript","Prolog","Python"]]

[ [i, x.index["Python"]] for i, x in enumerate[programming_languages] if "Python" in x ]

Ở đây chúng tôi sử dụng cách hiểu danh sách và phương pháp lập chỉ mục để tìm chỉ mục của "Python" trong mỗi danh sách phụ.

Chúng tôi chuyển danh sách programming_languages ​​cho phương thức liệt kê đi qua từng mục trong danh sách và trả về một bộ chứa chỉ mục và mục của danh sách tại chỉ mục đó

Mỗi mục trong danh sách ngôn ngữ lập trình cũng là một danh sách. Sau đó, toán tử in sẽ kiểm tra xem "Python" có trong danh sách này hay không. Nếu có, chúng tôi lưu trữ chỉ mục danh sách con và chỉ mục của "Python" bên trong danh sách con dưới dạng một bộ

Đầu ra là một danh sách các bộ dữ liệu. Mục đầu tiên trong bộ chỉ định chỉ mục danh sách con và số thứ hai chỉ định chỉ mục trong danh sách con

Vì vậy [1,0] có nghĩa là danh sách con ở chỉ mục 1 của danh sách ngôn ngữ lập trình có mục "Python" ở chỉ mục 0

Cách tìm chỉ mục của mục danh sách có thể không tồn tại trong danh sách bằng Python

Trong nhiều trường hợp, cuối cùng chúng tôi sẽ cố gắng lấy chỉ mục của một mục nhưng chúng tôi không chắc liệu mục đó có tồn tại trong danh sách hay không

Nếu chúng ta có một đoạn mã cố gắng lấy chỉ mục của một mục không có trong danh sách, phương thức index[] sẽ gây ra lỗi ValueError. Trong trường hợp không xử lý ngoại lệ, ValueError này sẽ gây ra sự chấm dứt chương trình bất thường

Đây là hai cách mà chúng ta có thể tránh hoặc xử lý tình huống này

index = fruits.index['orange']
#The value of index is 1

index = fruits.index['guava']
#The value of index is 3

index = fruits.index['banana']
#This raises a ValueError as banana is not present in list
0

Một cách là kiểm tra bằng cách sử dụng toán tử "in" xem mục đó có tồn tại trong danh sách hay không. Toán tử in có cú pháp cơ bản là

index = fruits.index['orange']
#The value of index is 1

index = fruits.index['guava']
#The value of index is 3

index = fruits.index['banana']
#This raises a ValueError as banana is not present in list
0

trong đó iterable có thể là một danh sách, bộ dữ liệu, bộ, chuỗi hoặc từ điển. Nếu var tồn tại dưới dạng một mục trong iterable, toán tử in trả về True. Khác nó trả về Sai

Điều này là lý tưởng cho trường hợp của chúng tôi. Chúng ta sẽ chỉ kiểm tra xem một mục có tồn tại trong danh sách hay không và chỉ khi nó tồn tại, chúng ta mới gọi phương thức index[]. Điều này đảm bảo rằng phương thức index[] không tăng ValueError

Nếu chúng tôi không muốn mất thời gian kiểm tra xem một mục có tồn tại trong danh sách hay không, đặc biệt đối với các danh sách lớn, chúng tôi có thể xử lý ValueError như thế này

index = fruits.index['orange']
#The value of index is 1

index = fruits.index['guava']
#The value of index is 3

index = fruits.index['banana']
#This raises a ValueError as banana is not present in list
1

Kết thúc

Hôm nay chúng ta đã học cách tìm chỉ mục của một mục trong danh sách bằng phương pháp

index = fruits.index['orange']
#The value of index is 1

index = fruits.index['guava']
#The value of index is 3

index = fruits.index['banana']
#This raises a ValueError as banana is not present in list
2

Chúng tôi cũng đã xem cách sử dụng phương pháp chỉ mục trên danh sách con, cách tìm chỉ mục của các mục trong danh sách các danh sách, cách tìm mọi lần xuất hiện của một mục trong danh sách và cách kiểm tra các mục trong danh sách có thể không có mặt.

Tôi hy vọng bạn tìm thấy bài viết này hữu ích và đọc thú vị. Mã hóa vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

suchandra datta

Đọc thêm bài viết

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Bạn có thể lấy chỉ mục của một chuỗi trong Python không?

Chỉ mục chuỗi Python[] . Nếu không tìm thấy chuỗi con, nó sẽ đưa ra một ngoại lệ. The index[] method returns the index of a substring inside the string [if found]. If the substring is not found, it raises an exception.

Đâu là sự khác biệt giữa index[] và Find[] trong chuỗi?

Cả index[] và find[] đều giống nhau ở chỗ chúng trả về vị trí chỉ mục của lần xuất hiện đầu tiên của chuỗi con từ chuỗi chính. Sự khác biệt chính là Python find[] tạo ra -1 làm đầu ra nếu nó không thể tìm thấy chuỗi con, trong khi index[] đưa ra một ngoại lệ ValueError .

Làm cách nào để kiểm tra xem một chuỗi có chứa nhiều chuỗi con trong Python không?

Trong trường hợp này, chúng ta có thể sử dụng Python "any[]". Ở đây, tập lệnh trả về "Đã tìm thấy kết quả khớp", vì có ít nhất một từ tồn tại trong danh sách

Chủ Đề