Làm thế nào để bạn biết nếu một giá trị nằm trong một mảng python?

Trong Python, danh sách là vùng chứa quan trọng vì chúng lưu trữ tất cả các loại kiểu dữ liệu dưới dạng tập hợp. Nó có thể chứa tới 536.870.912 mục trong hệ thống 32 bit. Đôi khi rất khó để biết liệu danh sách có chứa một mục cụ thể hay không. Python có nhiều cách khác nhau để chúng ta có thể tìm hiểu xem danh sách có chứa mục đó không

Mục lục

  • Danh sách chứa Python - Giới thiệu
  • Kiểm tra xem danh sách Python có chứa phần tử hay không bằng toán tử in
  • Sử dụng vòng lặp for để kiểm tra xem danh sách có chứa phần tử trong Python không
  • Sử dụng any[] để kiểm tra xem danh sách có chứa phần tử không
  • Count[] để kiểm tra xem danh sách có chứa phần tử không
  • Bớt tư tưởng

Danh sách Python chứa - Giới thiệu

Kiểm tra xem một phần tử có trong danh sách hay không là một trong những thao tác danh sách cơ bản trong Python và có nhiều cách khác nhau để chúng ta có thể kiểm tra điều đó. Trong hướng dẫn này, chúng tôi sẽ đề cập đến một số cách để kiểm tra xem danh sách có chứa phần tử hay không



Kiểm tra xem danh sách Python có chứa phần tử hay không bằng toán tử in

Cách thuận tiện nhất để kiểm tra xem danh sách có chứa phần tử hay không là sử dụng toán tử in. Không sắp xếp danh sách theo bất kỳ thứ tự cụ thể nào, nó trả về TRUE nếu phần tử ở đó, nếu không thì FALSE

Ví dụ dưới đây cho thấy cách thực hiện điều này bằng cách sử dụng 'in' trong câu lệnh if-else

Đầu vào

list = [Adam, Dean, Harvey, Mick, John]

if 'John' in list:
	print [" 'John' is found in the list"]
else
    print [" 'John' is not found in the list"] 

if 'Ned' in list:
    print [" 'Ned' is found in the list"]
else
    print [" 'Ned' is not found in the list"]

đầu ra

'John' is found in the list
'Ned' is not found in the list

Sử dụng vòng lặp for để kiểm tra xem danh sách có chứa phần tử trong Python không

Một phương pháp đơn giản khác để kiểm tra xem danh sách có chứa phần tử đang lặp qua nó không. Đúng như tên gọi, vòng lặp sẽ khớp từng phần tử của danh sách với phần tử mà chúng ta đang tìm kiếm từng cái một và sẽ chỉ dừng lại nếu có sự trùng khớp hoặc không có sự trùng khớp nào cả. Ví dụ dưới đây minh họa điều này

Đầu vào

list = [Adam, Dean, Harvey, Mick, John]

for name in list:     
if name == 'Adam':         
	  print ["Found the element"]

đầu ra

Found the element


Sử dụng any[] để kiểm tra xem danh sách có chứa

Hàm any[] là một phương pháp tích hợp sẵn để kiểm tra sự trùng khớp trong một chuỗi với sự trùng khớp của từng thành phần danh sách

Ví dụ dưới đây cho thấy cách thức hoạt động của hàm any[]. Chúng tôi kiểm tra xem có bất kỳ mục phổ biến nào trong chuỗi không, 'Adam sống ở New York' và danh sách được đề cập trong dòng đầu tiên

Đầu vào

list = [Adam, Dean, Harvey, Mick, John]
string = "Adam lives in New York"

print ["The original list is: " + str[list]]
print ["The original string is: " + string]

result = any[item in string for item in list]

print ["Does the string contain 'Adam': " + str[result]]

đầu ra

The original list is: [Adam, Dean, Harvey, Mick, John]
The original string is: Adam lives in New York
Does the string contain 'Adam': True


count[] để kiểm tra xem danh sách có chứa

Một phương thức tích hợp khác trong Python, count[] trả về số lần phần tử được truyền xuất hiện trong danh sách. Nếu phần tử không có trong danh sách thì hàm đếm[] sẽ trả về 0. Nếu nó trả về số nguyên dương lớn hơn 0 nghĩa là danh sách chứa phần tử

Đầu vào

list = [Adam, Dean, Harvey, Mick, John]

result = list.count[Harvey]

if result > 0:
    print["Harvey exists in the list"]
else:
    print["Harvey does not exist in the list"]

đầu ra

Harvey exists in the list

Bớt tư tưởng

Trong hướng dẫn này, chúng ta đã sử dụng các phương thức , vòng lặp for, any[] và count[] để kiểm tra xem một mục cụ thể có tồn tại trong danh sách hay không. Mọi người có thể tìm hiểu thêm các khái niệm khác liên quan đến Python tại đây

Tính toán element in test_elements, chỉ phát qua phần tử. Trả về một mảng boolean có cùng hình dạng với phần tử, đúng khi một phần tử của phần tử nằm trong test_elements và ngược lại là Sai

Thông số . phần tử array_like

mảng đầu vào

test_elements array_like

Các giá trị để kiểm tra từng giá trị của phần tử. Đối số này được làm phẳng nếu nó là một mảng hoặc giống như mảng. Xem ghi chú về hành vi với các tham số không giống mảng

assume_unique bool, tùy chọn

Nếu True, cả hai mảng đầu vào đều được coi là duy nhất, điều này có thể tăng tốc độ tính toán. Mặc định là Sai

đảo ngược bool, tùy chọn

Nếu True, các giá trị trong mảng được trả về sẽ bị đảo ngược, như thể việc tính toán phần tử không có trong test_elements. Mặc định là Sai. np.isin[a, b, invert=True] tương đương với [nhưng nhanh hơn] np.invert[np.isin[a, b]]

loại {Không, ‘sắp xếp’, ‘bảng’}, tùy chọn

Thuật toán sử dụng. Điều này sẽ không ảnh hưởng đến kết quả cuối cùng, nhưng sẽ ảnh hưởng đến tốc độ và việc sử dụng bộ nhớ. Giá trị mặc định, Không có, sẽ tự động chọn dựa trên các cân nhắc về bộ nhớ

  • Nếu 'sắp xếp', sẽ sử dụng cách tiếp cận dựa trên sáp nhập. Điều này sẽ có mức sử dụng bộ nhớ gấp khoảng 6 lần tổng kích thước của ar1 và ar2, không tính đến kích thước của dtypes

  • Nếu là 'bảng', sẽ sử dụng cách tiếp cận bảng tra cứu tương tự như cách sắp xếp đếm. Điều này chỉ khả dụng cho mảng boolean và số nguyên. Điều này sẽ có mức sử dụng bộ nhớ có kích thước của ar1 cộng với giá trị tối đa tối thiểu của ar2. giả định_unique không có tác dụng khi tùy chọn 'bảng' được sử dụng

  • Nếu Không, sẽ tự động chọn 'bảng' nếu phân bổ bộ nhớ được yêu cầu nhỏ hơn hoặc bằng 6 lần tổng kích thước của ar1 và ar2, nếu không sẽ sử dụng 'sắp xếp'. Điều này được thực hiện để không sử dụng một lượng lớn bộ nhớ theo mặc định, mặc dù 'bảng' có thể nhanh hơn trong hầu hết các trường hợp. Nếu ‘bảng’ được chọn, thì giả định_unique sẽ không có tác dụng

Trả về . isin ndarray, bool

Có hình dạng giống như phần tử. Các giá trị element[isin] nằm trong test_elements

Xem thêm

Phiên bản phẳng của chức năng này

Mô-đun với một số chức năng khác để thực hiện các hoạt động thiết lập trên mảng

ghi chú

là một phiên bản chức năng phần tử khôn ngoan của từ khóa python trong.

>>> np.nonzero[mask]
[array[[0, 1]], array[[1, 0]]]
1 gần tương đương với
>>> np.nonzero[mask]
[array[[0, 1]], array[[1, 0]]]
2 nếu a và b là chuỗi 1-D

phần tử và test_elements được chuyển đổi thành mảng nếu chúng chưa được chuyển đổi. Nếu test_elements là một tập hợp [hoặc tập hợp không theo trình tự khác], nó sẽ được chuyển đổi thành một mảng đối tượng có một phần tử, thay vì một mảng các giá trị có trong test_elements. Đây là hệ quả của cách xử lý các tập hợp không theo thứ tự của hàm tạo. Chuyển đổi tập hợp thành danh sách thường mang lại hành vi mong muốn

Sử dụng

>>> np.nonzero[mask]
[array[[0, 1]], array[[1, 0]]]
4 có xu hướng nhanh hơn kind=’sort’ nếu mối quan hệ sau đây là đúng.
>>> np.nonzero[mask]
[array[[0, 1]], array[[1, 0]]]
5, nhưng có thể sử dụng bộ nhớ lớn hơn. Giá trị mặc định cho loại sẽ được chọn tự động chỉ dựa trên mức sử dụng bộ nhớ, vì vậy người ta có thể đặt thủ công
>>> np.nonzero[mask]
[array[[0, 1]], array[[1, 0]]]
4 nếu có thể nới lỏng các ràng buộc về bộ nhớ

Chủ Đề