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
mảng đầu vào
test_elements array_likeCá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ọnNế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ọnNế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]]
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
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ớ