Computer >> Máy Tính >  >> Lập trình >> Python

Python Tìm trong danh sách:Hướng dẫn cho người mới bắt đầu

Làm cách nào để bạn tìm thấy một mục trong danh sách Python? Đó là một câu hỏi mà tất cả các lập trình viên Python đều gặp phải tại một số điểm. May mắn thay, ngôn ngữ này cung cấp một số cách mà bạn có thể tìm thấy một mục trong danh sách, chẳng hạn như sử dụng in toán tử hoặc một tìm kiếm tuyến tính.

Trong hướng dẫn này, chúng tôi nói về bốn phương pháp tìm một mục trong danh sách. Chúng tôi xem qua một ví dụ về từng phương pháp này để bạn có thể tìm hiểu cách chúng hoạt động.

Python Tìm trong danh sách bằng “in”

Python có một toán tử đặc biệt được gọi là in . Toán tử này kiểm tra xem liệu một giá trị có trong danh sách hay không. Toán tử này đôi khi được gọi là "toán tử thành viên" vì nó kiểm tra xem một giá trị có phải là thành viên của danh sách hay không.

Trong ví dụ này, chúng tôi điều hành một cửa hàng giày và chúng tôi muốn kiểm tra xem một đôi giày cụ thể có còn hàng hay không. Một cách để làm điều này là sử dụng in nhà điều hành.

Bắt đầu bằng cách xác định danh sách giày:

shoes = ["Adidas ZX Flux", "Adidas Ultraboost", "Adidas Gazelle", "Adidas Runfalcon"]

Tiếp theo, chúng tôi yêu cầu người dùng chèn một chiếc giày để tìm:

to_find = input("What shoe are you looking for? ")

Chúng tôi sử dụng một câu lệnh input () để thu thập tên của chiếc giày. Tiếp theo, chúng tôi sử dụng câu lệnh “if” để kiểm tra xem giày mà người dùng đã nhập có trong danh sách giày của chúng tôi hay không:

if to_find in shoes:
	print("{} shoes are in stock.".format(to_find))
else:
	print("{} shoes are not in stock.".format(to_find))

if của chúng tôi câu lệnh sẽ thực thi nếu có thể tìm thấy giày mà người dùng nhập trong danh sách của chúng tôi. Nếu không, else câu lệnh sẽ chạy. Hãy thử mã của chúng tôi:

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

What shoe are you looking for? Adidas Runfalcon
Adidas Runfalcon shoes are in stock.

Mã của chúng tôi xác định thành công rằng giày “Adidas Runfalcon” còn hàng. Điều này gây ra if của chúng tôi câu lệnh để thực thi.

Python Tìm trong danh sách bằng Tìm kiếm tuyến tính

Tìm kiếm tuyến tính là một thuật toán tìm kiếm đơn giản để tìm một mục trong danh sách. Tìm kiếm tuyến tính bắt đầu ở một đầu của danh sách và so sánh một giá trị với mọi phần tử trong danh sách. Nếu giá trị đó nằm trong danh sách, tìm kiếm tuyến tính sẽ trả về vị trí của mục.

Bắt đầu bằng cách viết một hàm thực hiện tìm kiếm tuyến tính của chúng tôi:

def linear_search(array, to_find):
	for i in range(0, len(array)):
		if array[i] == to_find:
			return i
	return -1

Mã của chúng tôi sử dụng vòng lặp “for” để lặp lại mọi mục trong danh sách “mảng”. Nếu mục đó được tìm thấy, vị trí chỉ mục của mục đó được trả về chương trình chính. Nếu mục không được tìm thấy sau khi toàn bộ danh sách đã được tìm kiếm, -1 được trả về chương trình chính.

Hãy vào chương trình chính của chúng tôi và gọi hàm của chúng tôi:

shoes = ["Adidas ZX Flux", "Adidas Ultraboost", "Adidas Gazelle", "Adidas Runfalcon"]
to_find = input("What shoe are you looking for? ")

found = linear_search(shoes, to_find)

Mã này hỏi người dùng về loại giày mà họ đang tìm kiếm. Sau đó, mã của chúng tôi gọi hàm linear_search để tìm xem chiếc giày đó có trong danh sách hay không.

Cuối cùng, chúng tôi sử dụng if tuyên bố để thông báo cho người dùng xem giày đã được tìm thấy hay chưa:

if found != -1:
	print("{} shoes are in stock.".format(to_find))
else:
	print("{} shoes are not in stock.".format(to_find))

Nếu hàm linear_search của chúng tôi trả về -1, điều đó có nghĩa là một mục chưa được tìm thấy trong danh sách. if của chúng tôi câu lệnh sẽ chạy nếu giá trị được trả về bởi hàm linear_search không bằng -1. Nếu giá trị bằng -1 thì else câu lệnh sẽ chạy.

Hãy thử chạy mã của chúng tôi:

What shoe are you looking for? Adidas Samba
Adidas Samba shoes are not in stock.

Mã của chúng tôi không thể tìm thấy giày Adidas Samba trong danh sách của chúng tôi.

Python Tìm trong danh sách bằng index ()

Hàm tích hợp index () cho phép bạn tìm vị trí chỉ mục của một mục trong danh sách. Viết chương trình tìm vị trí của một chiếc giày trong danh sách bằng cách sử dụng index() .

Để bắt đầu, hãy xác định danh sách các đôi giày. Chúng tôi yêu cầu người dùng chèn một đôi giày mà chương trình của chúng tôi sẽ tìm kiếm trong danh sách các đôi giày của chúng tôi:

shoes = ["Adidas ZX Flux", "Adidas Ultraboost", "Adidas Gazelle", "Adidas Runfalcon"]
to_find = input("What shoe are you looking for? ")

Tiếp theo, chúng tôi sử dụng index() phương thức để trả về vị trí chỉ mục danh sách của giày đó:

try:
	found = shoes.index(to_find)
	print("{} shoes are in stock. They are at index position {} in the list of shoes.".format(to_find, found))
except:
	print("{} shoes are not in stock.".format(to_find))

index() phương thức trả về một ValueError nếu một mục không được tìm thấy trong danh sách. Đó là lý do tại sao chúng tôi sử dụng nó như một phần của khối “thử… ngoại trừ”.

Nếu không thể tìm thấy một chiếc giày, một ValueError sẽ được nâng lên. Tại thời điểm này, khối "ngoại trừ" sẽ được chạy. Nếu một chiếc giày được tìm thấy, khối "thử" sẽ thực thi thành công.

Chạy mã của chúng tôi:

What shoe are you looking for? Adidas Gazelle
Adidas Gazelle shoes are in stock. They are at index position 2 in the list of shoes.

Mã của chúng tôi xác định thành công rằng giày Adidas Gazelle còn hàng. Chương trình của chúng tôi cũng cho chúng tôi biết vị trí mà những đôi giày đó được lưu trữ trong danh sách của chúng tôi.

Python Tìm trong danh sách bằng cách hiểu danh sách

Bạn tìm thấy nhiều mục trong danh sách đáp ứng một điều kiện nhất định bằng cách sử dụng khả năng hiểu danh sách.

Chúng tôi có một danh sách các đôi giày và chúng tôi chỉ muốn trả lại những đôi mang nhãn hiệu Adidas. Chúng tôi có thể làm điều này bằng cách sử dụng một danh sách hiểu. Bắt đầu bằng cách xác định danh sách giày:

shoes = ["Nike PG 4", "Adidas Ultraboost", "Adidas Gazelle", "Nike Air Max Verona"]

Tiếp theo, chúng tôi viết một danh sách hiểu tất cả các giày có chứa từ “Nike”. Phần hiểu danh sách sử dụng cú pháp tương tự như vòng lặp for:

nike_shoes = [shoe for shoe in shoes if "Nike" in shoe]
print(nike_shoes)

Biểu thức danh sách lặp lại qua từng chiếc giày trong danh sách "giày". Biểu thức kiểm tra xem từ Nike có trong mỗi tên giày hay không. Nếu đúng, chiếc giày đó sẽ được thêm vào danh sách “nike_shoes”. Nếu không, không có gì xảy ra.

Hãy chạy mã của chúng tôi:

['Nike PG 4', 'Nike Air Max Verona']

Mã của chúng tôi trả về một danh sách các đôi giày Nike.

Kết luận

Có nhiều cách để bạn có thể tìm thấy một mục trong danh sách. Các phương pháp phổ biến nhất bao gồm:

  • Sử dụng in nhà điều hành thành viên
  • Sử dụng tìm kiếm tuyến tính
  • Sử dụng index() phương pháp
  • Sử dụng khả năng hiểu danh sách

Bây giờ, bạn đã sẵn sàng tìm kiếm các mục trong danh sách Python như một lập trình viên chuyên nghiệp!