Python Tìm trong danh sách – Cách tìm chỉ mục của một mục hoặc phần tử trong danh sách – chỉ mục của một danh sách python

Trong bài viết này, bạn sẽ học cách tìm chỉ mục của một phần tử có trong danh sách bằng ngôn ngữ lập trình Python. Có một số cách để đạt được điều này và trong bài viết này, bạn sẽ học ba trong số các kỹ thuật khác nhau được sử dụng để tìm chỉ mục của

< font style = "vertical-align: inherit;"> Bạn đang xem: chỉ mục của một danh sách python
< div>

Trong bài viết này, bạn sẽ học cách tìm chỉ mục của một phần tử có trong danh sách bằng ngôn ngữ lập trình Python.

Có một số cách để đạt được điều này và trong bài viết này, bạn sẽ học ba trong số các kỹ thuật khác nhau được sử dụng để tìm chỉ mục của một phần tử danh sách trong Python.

Ba kỹ thuật được sử dụng là:

  • tìm chỉ mục bằng phương pháp danh sách index () ,
  • sử dụng for-loop ,
  • và cuối cùng, sử dụng tính năng hiểu danh sách và hàm enumerate () .

Cụ thể, đây là nội dung chúng tôi sẽ đề cập sâu hơn:

Danh sách trong Python là gì?

Danh sách là một kiểu dữ liệu tích hợp trong Python và là một trong những cấu trúc dữ liệu mạnh mẽ nhất.

Chúng hoạt động như một vùng chứa và lưu trữ nhiều mục, thường có liên quan, dưới cùng một tên biến.

Các mục được đặt và đặt bên trong dấu ngoặc vuông, [] . Mỗi mục bên trong dấu ngoặc vuông được phân tách bằng dấu phẩy, , .

  # một danh sách có tên 'my_information' chứa các chuỗi và số
my_information = ["John Doe", 34 tuổi, "Luân Đôn", 1,76]
 

Từ ví dụ trên, bạn có thể thấy rằng danh sách có thể chứa các mục thuộc bất kỳ kiểu dữ liệu nào, có nghĩa là các phần tử danh sách có thể không đồng nhất.

Không giống như mảng chỉ lưu trữ các mục cùng loại, danh sách cho phép linh hoạt hơn.

Danh sách cũng có thể thay đổi, có nghĩa là chúng có thể thay đổi và động. Có thể cập nhật các mục trong danh sách, có thể thêm các mục mới vào danh sách và có thể xóa bất kỳ mục nào bất kỳ lúc nào trong suốt thời gian của chương trình.

Tổng quan về Lập chỉ mục bằng Python

Như đã đề cập, danh sách là một tập hợp các mục. Cụ thể, chúng là một bộ sưu tập các mặt hàng được sắp xếp theo thứ tự và chúng duy trì bộ sưu tập và thứ tự xác định đó trong hầu hết các phần.

Mỗi phần tử bên trong danh sách sẽ có một vị trí duy nhất xác định nó.

Vị trí đó được gọi là chỉ số của phần tử.

Các chỉ số bằng Python và trong tất cả các ngôn ngữ lập trình, bắt đầu ở 0 không phải 1 .

Hãy xem danh sách đã được sử dụng trong phần trước:

  my_information = ["John Doe", 34, "London", 1.76]
 

Danh sách được lập chỉ mục bằng 0 và quá trình đếm bắt đầu từ 0 .

Phần tử danh sách đầu tiên, "John Doe" , có chỉ mục là 0 .
Phần tử danh sách thứ hai, 34 , có chỉ mục là 1 .
Phần tử danh sách thứ ba, "London" , có chỉ mục là 2 .
Phần tử danh sách thứ tư, 1.76 , có chỉ mục là 3 .

Các chỉ số hữu ích khi truy cập các mục danh sách cụ thể có vị trí (chỉ mục) mà bạn biết.

Vì vậy, bạn có thể lấy bất kỳ phần tử danh sách nào bạn muốn bằng cách sử dụng chỉ mục của nó.

Để truy cập một mục, trước tiên hãy bao gồm tên của danh sách và sau đó trong dấu ngoặc vuông bao gồm số nguyên tương ứng với chỉ mục cho mục bạn muốn truy cập.

Đây là cách bạn truy cập từng mục bằng chỉ mục của nó:

  my_information = ["John Doe", 34, "London", 1.76]

print (my_information [0])
print (my_information [1])
print (my_information [2])
print (my_information [3])

#output

#John Doe
# 34
#London
# 1.76
 

Nhưng còn việc tìm chỉ mục của một mục danh sách bằng Python thì sao?

Trong các phần tiếp theo, bạn sẽ thấy một số cách bạn có thể tìm chỉ mục của các phần tử danh sách.

Tìm chỉ mục của một mặt hàng bằng phương pháp List index () trong Python

Cho đến nay, bạn đã biết cách truy cập một giá trị bằng cách tham chiếu số chỉ mục của nó.

Điều gì sẽ xảy ra khi bạn không biết số chỉ mục và bạn đang làm việc với một danh sách lớn?

Xem Thêm  Công cụ chọn màu HTML - công cụ chọn màu trong html

Bạn có thể đưa ra một giá trị và tìm chỉ mục của nó và bằng cách đó, hãy kiểm tra vị trí của nó trong danh sách.

Vì vậy, phương thức index () tích hợp sẵn của Python được sử dụng làm công cụ tìm kiếm.

Cú pháp của phương thức index () có dạng như sau:

  my_list.index (item, start, end)
 

Hãy chia nhỏ nó:

  • my_list là tên của danh sách bạn đang tìm kiếm.
  • .index () là phương thức tìm kiếm có ba tham số. Một tham số là bắt buộc và hai tham số còn lại là tùy chọn.
  • item là tham số bắt buộc. Đó là phần tử có chỉ mục mà bạn đang tìm kiếm.
  • start là tham số tùy chọn đầu tiên. Đó là chỉ mục nơi bạn sẽ bắt đầu tìm kiếm của mình.
  • end tham số tùy chọn thứ hai. Đó là chỉ mục nơi bạn sẽ kết thúc tìm kiếm của mình.

Hãy xem một ví dụ chỉ sử dụng tham số bắt buộc:

  Progra_languages ​​= ["JavaScript", "Python", "Java", "C ++"]

print (Progra_languages.index ("Python"))

#output
# 1
 

Trong ví dụ trên, phương thức index () chỉ nhận một đối số là phần tử có chỉ mục mà bạn đang tìm kiếm.

Hãy nhớ rằng đối số bạn chuyển có phân biệt chữ hoa chữ thường. Điều này có nghĩa là nếu bạn đã chuyển “python” chứ không phải “Python”, bạn sẽ nhận được lỗi vì “python” với chữ thường “p” không có trong danh sách.

Giá trị trả về là một số nguyên, là số chỉ mục của mục danh sách đã được chuyển làm đối số cho phương thức.

Hãy xem một ví dụ khác:

  Progra_languages ​​= ["JavaScript", "Python", "Java", "C ++"]

print (Progra_languages.index ("React"))

#output
# dòng 3, trong & lt; mô-đun & gt;
# print (Progra_languages.index ("React"))
#ValueError: 'React' không có trong danh sách
 

Nếu bạn thử và tìm kiếm một mục nhưng không có mục nào phù hợp trong danh sách bạn đang tìm kiếm, Python sẽ tạo ra một lỗi làm giá trị trả về – cụ thể là nó sẽ trả về một ValueError . < / p>

Điều này có nghĩa là mục bạn đang tìm kiếm không tồn tại trong danh sách.

Một cách để ngăn điều này xảy ra là bao bọc lệnh gọi đến phương thức index () trong một khối thử / ngoại trừ .

Nếu giá trị không tồn tại, sẽ có một thông báo đến bảng điều khiển cho biết giá trị đó không được lưu trữ trong danh sách và do đó không tồn tại.

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

thử:
    print (Progra_languages.index ("React"))
ngoại trừ ValueError:
    print ("Mặt hàng đó không tồn tại")
    
#output
# Mặt hàng đó không tồn tại
 

Một cách khác là kiểm tra xem mục đó có nằm trong danh sách ngay từ đầu hay không, trước khi tìm số chỉ mục của nó. Kết quả đầu ra sẽ là một giá trị Boolean – nó sẽ là Đúng hoặc Sai.

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

print ("Phản ứng" trong Progra_languages)

#output
#Sai
 

Cách sử dụng các tham số tùy chọn với phương pháp index ()

Hãy xem ví dụ sau:

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

print (Progra_languages.index ("Python"))

#output
# 1
 

Trong danh sách Progra_languages ​​, có ba trường hợp của chuỗi “Python” đang được tìm kiếm.

Để kiểm tra, bạn có thể làm việc ngược lại vì trong trường hợp này, danh sách này rất nhỏ.

Bạn có thể đếm và tìm ra số chỉ mục của chúng và sau đó tham chiếu chúng như bạn đã thấy trong các phần trước:

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

print (Progra_languages ​​[1])
print (Progra_languages ​​[3])
print (Progra_languages ​​[5])

#output
#Python
#Python
#Python
 

Có một cái ở vị trí 1 , một cái khác ở vị trí 3 và cái cuối cùng ở vị trí 5 .

Tại sao chúng không hiển thị trong đầu ra khi phương thức index () được sử dụng?

Khi phương thức index () được sử dụng, giá trị trả về chỉ là lần xuất hiện đầu tiên của mục trong danh sách. Phần còn lại của các lần xuất hiện không được trả lại.

Phương thức index () chỉ trả về chỉ mục của vị trí mà mục xuất hiện lần đầu tiên .

Bạn có thể thử chuyển các tham số start end tùy chọn sang phương thức index () .

Bạn đã biết rằng lần xuất hiện đầu tiên bắt đầu ở chỉ mục 1 , vì vậy đó có thể là giá trị của tham số start .

Đối với thông số end , trước tiên, bạn có thể tìm độ dài của danh sách.

Xem Thêm  Lập trình hướng đối tượng trong Java - lập trình hướng đối tượng java

Để tìm độ dài, hãy sử dụng hàm len () :

  print (len (Progra_languages))

#output là 6
 

Giá trị cho endKhi đó, tham số sẽ là độ dài của danh sách trừ đi 1. Chỉ số của mục cuối cùng trong danh sách luôn nhỏ hơn độ dài của danh sách một lần.

Vì vậy, tổng hợp tất cả những điều đó lại với nhau, đây là cách bạn có thể cố gắng tạo ra tất cả ba trường hợp của mặt hàng:

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

print (Progra_languages.index ("Python", 1,5))

#output
# 1
 

Kết quả vẫn chỉ trả về trường hợp đầu tiên!

Mặc dù các tham số start end cung cấp nhiều vị trí cho tìm kiếm của bạn, giá trị trả về khi sử dụng phương thức index () là vẫn chỉ là sự xuất hiện đầu tiên của mục trong danh sách.

Cách Nhận Chỉ số Tất cả các lần xuất hiện của một Mục trong Danh sách

Sử dụng for-loop để lấy Chỉ số về Tất cả các lần xuất hiện của một Mục trong Danh sách

Hãy lấy cùng một ví dụ mà chúng tôi đã sử dụng cho đến nay.

Danh sách đó có ba lần xuất hiện của chuỗi “Python”.

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]
 

Đầu tiên, hãy tạo một danh sách mới, trống.

Đây sẽ là danh sách lưu trữ tất cả các chỉ số của “Python”.

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

python_indices = []
 

Tiếp theo, sử dụng for-loop . Đây là một cách để lặp (hoặc lặp) qua danh sách và lấy từng mục trong danh sách ban đầu. Cụ thể, chúng tôi lặp lại số chỉ mục của mỗi mục.

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

python_indices = []

cho ngôn ngữ lập trình trong phạm vi (len (ngôn ngữ lập trình)):
 

Trước tiên, bạn sử dụng từ khóa cho .

Sau đó, tạo một biến, trong trường hợp này là Progra_language , sẽ hoạt động như một trình giữ chỗ cho vị trí của từng mục trong danh sách ban đầu, trong quá trình lặp lại.

Tiếp theo, bạn cần chỉ định số lần lặp lại mà for-loop sẽ thực hiện.

Trong trường hợp này, vòng lặp sẽ lặp lại toàn bộ độ dài của danh sách, từ đầu đến cuối. Cú pháp range (len (Progra_languages)) là một cách để truy cập tất cả các mục trong danh sách program_languages ​​.

Hàm range () nhận một chuỗi các số chỉ định số mà nó sẽ bắt đầu đếm và số mà nó sẽ kết thúc quá trình đếm.

Hàm len () tính toán độ dài của danh sách, vì vậy trong trường hợp này, phép đếm sẽ bắt đầu từ 0 và kết thúc tại – nhưng không bao gồm – 6 , là phần cuối của danh sách.

Cuối cùng, bạn cần đặt một điều kiện hợp lý.

Về cơ bản, bạn muốn nói: “Nếu trong quá trình lặp, giá trị tại vị trí đã cho bằng ‘Python’, hãy thêm vị trí đó vào danh sách mới mà tôi đã tạo trước đó”.

Bạn sử dụng phương thức append () để thêm phần tử vào danh sách.

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

python_indices = []

cho ngôn ngữ lập trình trong phạm vi (len (ngôn ngữ lập trình)):
    if Progra_languages ​​[Progra_language] == "Python":
      python_indices.append (Progra_language)

print (python_indices)

#output

# [1, 3, 5]
 

Sử dụng chức năng hiểu danh sách và enumerate () để lấy chỉ số về tất cả các lần xuất hiện của một mục trong danh sách < / h3>

Một cách khác để tìm chỉ số của tất cả các lần xuất hiện của một mục cụ thể là sử dụng tính năng hiểu danh sách.

Đọc hiểu danh sách là một cách để tạo danh sách mới dựa trên danh sách hiện có.

Đây là cách bạn có được tất cả các chỉ số của mỗi lần xuất hiện của chuỗi “Python”, bằng cách sử dụng khả năng hiểu danh sách:

  Progra_languages ​​= ["JavaScript", "Python", "Java", "Python", "C ++", "Python"]

python_indices = [index for (index, item) in enumerate (Progra_languages) if item == "Python"]

print (python_indices)

# [1, 3, 5]
 

Với hàm enumerate () , bạn có thể lưu trữ chỉ số của các mục đáp ứng điều kiện bạn đặt.

Đầu tiên, nó cung cấp một cặp ( index, item ) cho mỗi phần tử trong danh sách ( program_languages ​​) được truyền làm đối số cho hàm.

index dành cho số chỉ mục của mục danh sách và item dành cho chính mục danh sách.

Sau đó, nó hoạt động như một bộ đếm bắt đầu đếm từ 0 và tăng dần mỗi khi điều kiện bạn đặt được đáp ứng, chọn và di chuyển các chỉ số của các mục đáp ứng tiêu chí của bạn.

Được kết hợp với khả năng hiểu danh sách, một danh sách mới được tạo với tất cả các chỉ số của chuỗi “Python”.

Kết luận

Và bạn đã có nó! Giờ đây, bạn đã biết một số cách để tìm chỉ mục của một mục và các cách để tìm chỉ số của nhiều lần xuất hiện của một mục, trong danh sách bằng Python.

Tôi hy vọng bạn thấy bài viết này hữu ích.

Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem Điện toán khoa học có chứng chỉ Python của freeCodeCamp.

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.

Cảm ơn bạn đã đọc và chúc bạn viết mã vui vẻ!


Xem thêm những thông tin liên quan đến chủ đề chỉ mục của một danh sách python

Python for Beginners – Learn Python in 1 Hour

  • Tác giả: Programming with Mosh
  • Ngày đăng: 2020-09-16
  • Đánh giá: 4 ⭐ ( 9446 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This Python tutorial for beginners show how to get started with Python quickly. Learn to code in 1 hour! Watch this tutorial get started!
    👍 Subscribe for more Python tutorials like this: https://goo.gl/6PYaGF
    🔥 Want to learn more? Watch my complete Python course: https://youtu.be/_uQrJ0TkZlc

    📕 Get my FREE Python cheat sheet: http://bit.ly/2Gp80s6

    Courses: https://codewithmosh.com
    Twitter: https://twitter.com/moshhamedani
    Facebook: https://www.facebook.com/programmingwithmosh/
    Blog: http://programmingwithmosh.com

    Python, MachineLearning, WebDevelopment

    📔 Python Exercises for Beginners: https://goo.gl/1XnQB1

    ⭐ My Favorite Python Books
    – Python Crash Course: https://amzn.to/2GqMdjG
    – Automate the Boring Stuff with Python: https://amzn.to/2N71d6S
    – A Smarter Way to Learn Python: https://amzn.to/2UZa6lE
    – Machine Learning for Absolute Beginners: https://amzn.to/2Gs0koL
    – Hands-on Machine Learning with scikit-learn and TensorFlow: https://amzn.to/2IdUuJy

    TABLE OF CONTENT

    0:00:00 Introduction
    0:00:30 What You Can Do With Python
    0:01:15 Your First Python Program
    0:05:30 Variables
    0:09:08 Receiving Input
    0:10:48 Type Conversion
    0:18:49 Strings
    0:23:41 Arithmetic Operators
    0:25:59 Operator Precedence
    0:27:11 Comparison Operators
    0:28:52 Logical Operators
    0:31:06 If Statements
    0:36:16 Exercise
    0:41:42 While Loops
    0:45:11 Lists
    0:48:47 List Methods
    0:52:16 For Loops
    0:54:54 The range() Function
    0:57:43 Tuples

Python cơ bản

  • Tác giả: hiepsiit.net
  • Đánh giá: 3 ⭐ ( 3922 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

[Python] Phần 8: Danh sách (List) trong Python

  • Tác giả: www.dammio.com
  • Đánh giá: 3 ⭐ ( 6209 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Cách nhận các chỉ mục của một mảng được sắp xếp trong Python

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 2435 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Nếu bạn đang sử dụng numpy, bạn có sẵn hàm argsort (): >>> import numpy >>>…

Quản lý File và thư mục trong Python

  • Tác giả: quantrimang.com
  • Đánh giá: 4 ⭐ ( 7521 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Python cũng cung cấp rất nhiều phương thức để xử lý các hoạt động đa dạng liên quan tới thư mục. Trong bài viết này, Quantrimang sẽ cùng bạn sẽ tìm hiểu về quản lý file và thư mục bằng Python, cụ thể là việc là tạo thư mục, đổi tên thư mục, liệt kê các thư mục và làm việc với chúng.

Lấy danh sách tên file và thư mục trong python

  • Tác giả: laptrinhcanban.com
  • Đánh giá: 3 ⭐ ( 9756 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn cách lấy danh sách tên file và thư mục trong python. Bạn sẽ học được cách lấy danh sách tên file và thư mục trong python, lấy danh sách đệ quy tên file và thư mục trong pythonvới các phương

Kiểu dữ liệu List trong Python

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 3385 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Kiểu dữ liệu List trong Python là cấu trúc dữ liệu mà có khả năng lưu giữ các kiểu dữ liệu khác nhau. List trong Python là thay đổi (mutable),

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình