Hướng dẫn how do you check if a value isnt in a list python? - làm thế nào để bạn kiểm tra xem một giá trị không có trong một danh sách python?

Làm cách nào để kiểm tra xem một cái gì đó là (không) trong danh sách trong Python?

Giải pháp rẻ nhất và dễ đọc nhất là sử dụng toán tử

(1, 2) in [(3, 4), (1, 2)]
#  True
1 (hoặc trong trường hợp cụ thể của bạn,
(1, 2) in [(3, 4), (1, 2)]
#  True
2). Như đã đề cập trong tài liệu,

Các nhà khai thác

(1, 2) in [(3, 4), (1, 2)]
#  True
1 và
(1, 2) in [(3, 4), (1, 2)]
#  True
2 Kiểm tra thành viên.
(1, 2) in [(3, 4), (1, 2)]
#  True
5 đánh giá thành
(1, 2) in [(3, 4), (1, 2)]
#  True
6 nếu
(1, 2) in [(3, 4), (1, 2)]
#  True
7 là thành viên của
(1, 2) in [(3, 4), (1, 2)]
#  True
8 và
(1, 2) in [(3, 4), (1, 2)]
#  True
9 khác.
[3, 2, 1].__contains__(1)
# True
0 Trả về sự phủ định của
(1, 2) in [(3, 4), (1, 2)]
#  True
5.

Additionally,

Toán tử

(1, 2) in [(3, 4), (1, 2)]
#  True
2 được xác định là có giá trị thực nghịch của
(1, 2) in [(3, 4), (1, 2)]
#  True
1.

[3, 2, 1].__contains__(1)
# True
4 về mặt logic giống như
[3, 2, 1].__contains__(1)
# True
5.

Đây là vài ví dụ:

'a' in [1, 2, 3]
# False

'c' in ['a', 'b', 'c']
# True

'a' not in [1, 2, 3]
# True

'c' not in ['a', 'b', 'c']
# False

Điều này cũng hoạt động với các bộ dữ liệu, vì các bộ dữ liệu có thể băm (do hậu quả của thực tế là chúng cũng là bất biến):

(1, 2) in [(3, 4), (1, 2)]
#  True

Nếu đối tượng trên RHS xác định phương thức

[3, 2, 1].__contains__(1)
# True
6,
(1, 2) in [(3, 4), (1, 2)]
#  True
1 sẽ gọi nó trong nội bộ, như đã lưu ý trong đoạn cuối của phần so sánh của tài liệu.

...

(1, 2) in [(3, 4), (1, 2)]
#  True
1 và
(1, 2) in [(3, 4), (1, 2)]
#  True
2, được hỗ trợ bởi các loại có thể thực hiện được hoặc thực hiện phương pháp
[3, 2, 1].__contains__(1)
# True
6. Ví dụ, bạn có thể (nhưng không nên) làm điều này:

[3, 2, 1].__contains__(1)
# True

(1, 2) in [(3, 4), (1, 2)]
#  True
1 ngắn mạch, vì vậy nếu phần tử của bạn ở đầu danh sách,
(1, 2) in [(3, 4), (1, 2)]
#  True
1 sẽ đánh giá nhanh hơn:

lst = list(range(10001))
%timeit 1 in lst
%timeit 10000 in lst  # Expected to take longer time.

68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

Nếu bạn muốn làm nhiều hơn là chỉ kiểm tra xem một mục có nằm trong danh sách hay không, có các tùy chọn:

  • lst = list(range(10001))
    %timeit 1 in lst
    %timeit 10000 in lst  # Expected to take longer time.
    
    68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
    178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    
    3 có thể được sử dụng để truy xuất chỉ mục của một mục. Nếu yếu tố đó không tồn tại,
    lst = list(range(10001))
    %timeit 1 in lst
    %timeit 10000 in lst  # Expected to take longer time.
    
    68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
    178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    
    4 sẽ được nâng lên.
  • lst = list(range(10001))
    %timeit 1 in lst
    %timeit 10000 in lst  # Expected to take longer time.
    
    68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
    178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    
    5 có thể được sử dụng nếu bạn muốn đếm các lần xuất hiện.

Vấn đề XY: Bạn đã xem xét lst = list(range(10001)) %timeit 1 in lst %timeit 10000 in lst # Expected to take longer time. 68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) 178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each) 6s chưa?

Hãy tự hỏi mình những câu hỏi sau:

  • Bạn có cần kiểm tra xem một mục có nằm trong danh sách nhiều lần không một lần?
  • Là kiểm tra này được thực hiện bên trong một vòng lặp, hoặc một chức năng được gọi là lặp đi lặp lại?
  • Các mặt hàng bạn đang lưu trữ trong danh sách của bạn có thể có thể không? Iow, bạn có thể gọi
    lst = list(range(10001))
    %timeit 1 in lst
    %timeit 10000 in lst  # Expected to take longer time.
    
    68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
    178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
    
    7 trên chúng không?

Nếu bạn trả lời "có" cho những câu hỏi này, bạn nên sử dụng

lst = list(range(10001))
%timeit 1 in lst
%timeit 10000 in lst  # Expected to take longer time.

68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
6 thay thế. Một bài kiểm tra thành viên
(1, 2) in [(3, 4), (1, 2)]
#  True
1 trên
1 in {1, 2, 3} 
# True

'a' not in {'a', 'b', 'c'}
# False

(1, 2) in {('a', 'c'), (1, 2)}
# True
0S là độ phức tạp thời gian O (N). Điều này có nghĩa là Python phải thực hiện quét tuyến tính danh sách của bạn, truy cập từng yếu tố và so sánh nó với mục tìm kiếm. Nếu bạn đang làm điều này nhiều lần hoặc nếu danh sách lớn, hoạt động này sẽ phải chịu một chi phí.

Mặt khác, các đối tượng

lst = list(range(10001))
%timeit 1 in lst
%timeit 10000 in lst  # Expected to take longer time.

68.9 ns ± 0.613 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
178 µs ± 5.01 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
6 băm giá trị của chúng để kiểm tra thành viên thời gian liên tục. Kiểm tra cũng được thực hiện bằng cách sử dụng
(1, 2) in [(3, 4), (1, 2)]
#  True
1:

1 in {1, 2, 3} 
# True

'a' not in {'a', 'b', 'c'}
# False

(1, 2) in {('a', 'c'), (1, 2)}
# True

Nếu bạn không may là yếu tố bạn đang tìm kiếm/không tìm kiếm ở cuối danh sách của bạn, Python sẽ quét danh sách cho đến cuối. Điều này thể hiện rõ từ thời gian dưới đây:

l = list(range(100001))
s = set(l)

%timeit 100000 in l
%timeit 100000 in s

2.58 ms ± 58.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
101 ns ± 9.53 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

Một lời nhắc nhở, đây là một tùy chọn phù hợp miễn là các yếu tố bạn lưu trữ và tìm kiếm có thể băm. IOW, họ sẽ phải là loại bất biến hoặc các đối tượng thực hiện

1 in {1, 2, 3} 
# True

'a' not in {'a', 'b', 'c'}
# False

(1, 2) in {('a', 'c'), (1, 2)}
# True
3.

Trong hướng dẫn ngắn này, hãy tìm cách kiểm tra xem danh sách có trống trong Python không. Chúng tôi cũng nhìn vào lý do tại sao bạn cần phải làm điều này để bạn hiểu mục đích tốt hơn.

Làm thế nào để kiểm tra xem một danh sách có trống trong Python không?

Danh sách trống được coi là sai trong Python, do đó hàm

1 in {1, 2, 3} 
# True

'a' not in {'a', 'b', 'c'}
# False

(1, 2) in {('a', 'c'), (1, 2)}
# True
4 sẽ trả về sai nếu danh sách được thông qua như một đối số. Các phương pháp khác bạn có thể sử dụng để kiểm tra xem danh sách có trống đang đặt nó bên trong câu lệnh IF, sử dụng các phương thức
1 in {1, 2, 3} 
# True

'a' not in {'a', 'b', 'c'}
# False

(1, 2) in {('a', 'c'), (1, 2)}
# True
5 hoặc so sánh nó với một danh sách trống.

Mục lục: Kiểm tra xem danh sách có trống trong Python không

  • Tại sao bạn kiểm tra xem danh sách có trống trong Python không?
  • Giải pháp 1: Sử dụng phương pháp được đề xuất PEP 8
  • Giải pháp 2: Sử dụng hàm bool ()
  • Giải pháp 3: Sử dụng Len ()
  • Bớt tư tưởng

Tại sao bạn kiểm tra xem danh sách có trống trong Python không?

Giải pháp 1: Sử dụng phương pháp được đề xuất PEP 8for. This also comes in handy while working with strings and numerical operations. And hence it is a good practice to check if a list is empty before proceeding.

Giải pháp 2: Sử dụng hàm bool ()

Giải pháp 3: Sử dụng Len ()

Bớt tư tưởng

Trong khi xử lý danh sách, một đặc điểm chính mà hầu hết các nhà phát triển sử dụng là khả năng lặp lại của nó. Điều này có nghĩa là bạn có thể lặp lại thông qua các giá trị trong danh sách làm cho nó phù hợp với các vòng lặp đặc biệt là. Điều này cũng có ích trong khi làm việc với các chuỗi và hoạt động số. Và do đó, đó là một thực tế tốt để kiểm tra xem một danh sách có trống trước khi tiến hành hay không.0, 0.0 or with length 0, are all considered to be false. You can read more about this here.

Điều này vẫn đúng với tất cả các phép lặp, tức là từ điển, bộ dữ liệu, v.v.

l1 = ["Hire", "the", "top", "1%", "freelancers"]

l2 = []

if l2:
    print("list is not empty")
else:
    print("list is empty")

#Output: "list is empty"

Với cách đó, chúng ta hãy xem xét các phương pháp khác nhau có thể được sử dụng để kiểm tra xem danh sách có trống trong Python không.False, the condition is false and hence we are able to identify an empty list. Feel free to change the condition with l1.

Giải pháp 1: Sử dụng phương pháp được đề xuất PEP 8:not.

sl1 = ["Hire", "the", "top", "1%", "freelancers"]

l2 = []

if not l2:
    print("list is  empty")
else:
    print("list is not empty")

# Output: "list is empty"

Giải pháp 1 & 2 Sử dụng một phương pháp gọi là ** Kiểm tra giá trị sự thật **. Điều này về cơ bản có nghĩa là chúng tôi kiểm tra xem danh sách có trống bằng giá trị boolean của nó không. Điều này là có thể bởi vì, trong các chuỗi trống Python, các đối số vị trí chứa 0, 0,0 hoặc với chiều dài 0, tất cả đều được coi là sai. Bạn có thể đọc thêm về điều này ở đây.not in the loop. It inverses the value and hence the condition becomes true. This method is used to increase readability as a developer could type the desired code under the else.

Vì phương pháp này, chúng ta có thể kiểm tra xem danh sách có trống trong Python không. Và dưới đây là cách pythonic nhất để kiểm tra giống nhau.

Vì một danh sách trống là sai, điều kiện là sai và do đó chúng tôi có thể xác định một danh sách trống. Hãy thay đổi điều kiện với L1.bool() function. The bool() function returns the boolean value of an object i.e true or false. The code is also very similar to the first method. Choosing between the two methods would boil down to a personal choice.

l1 = ["Hire", "the", "top", "1%", "freelancers"]

l2 = []

if bool(l2):
    print("list is empty")
else:
    print("list is not empty")

# Output: "list is empty"

Một phương pháp phổ biến khác là với hàm ý của một không.false the print under the else is returned.

Giải pháp 3: Sử dụng Len ()

Bớt tư tưởnglen() to check if a list is empty, this function returns the length of the argument passed. And given the length of an empty list is 0 it can be used to check if a list is empty in Python.

Trong khi xử lý danh sách, một đặc điểm chính mà hầu hết các nhà phát triển sử dụng là khả năng lặp lại của nó. Điều này có nghĩa là bạn có thể lặp lại thông qua các giá trị trong danh sách làm cho nó phù hợp với các vòng lặp đặc biệt là. Điều này cũng có ích trong khi làm việc với các chuỗi và hoạt động số. Và do đó, đó là một thực tế tốt để kiểm tra xem một danh sách có trống trước khi tiến hành hay không.0 is considered false.

l1 = ["Hire", "the", "top", "1%", "freelancers"]

l2 = []

if len(l2):
    print("list is not empty")
else:
    print("list is empty")

# Output: "list is empty"

Điều này vẫn đúng với tất cả các phép lặp, tức là từ điển, bộ dữ liệu, v.v.len() of l2 is 0 it is considered false and hence the condition returns the output under the else.

Với cách đó, chúng ta hãy xem xét các phương pháp khác nhau có thể được sử dụng để kiểm tra xem danh sách có trống trong Python không.

(1, 2) in [(3, 4), (1, 2)]
#  True
0

Giải pháp 1: Sử dụng phương pháp được đề xuất PEP 8:

Bớt tư tưởng

Trong khi xử lý danh sách, một đặc điểm chính mà hầu hết các nhà phát triển sử dụng là khả năng lặp lại của nó. Điều này có nghĩa là bạn có thể lặp lại thông qua các giá trị trong danh sách làm cho nó phù hợp với các vòng lặp đặc biệt là. Điều này cũng có ích trong khi làm việc với các chuỗi và hoạt động số. Và do đó, đó là một thực tế tốt để kiểm tra xem một danh sách có trống trước khi tiến hành hay không.if or for loops, this would help reduce unwanted errors.

Điều này vẫn đúng với tất cả các phép lặp, tức là từ điển, bộ dữ liệu, v.v.len( )== 0 as it is straightforward and readable. If you are proficient you can use solutions 1 or 2 but again I would recommend using the not l2 solution as it is more readable.

Làm thế nào để bạn kiểm tra xem một mục không có trong danh sách trong Python?

Không phải trong toán tử trong nhà điều hành - toán tử này được sử dụng để kiểm tra xem một phần tử không có trong danh sách được truyền hay không. Trả về true nếu phần tử không có trong danh sách khác trả về sai. − This operator is used to check whether an element is not present in the passed list or not. Returns true if the element is not present in the list otherwise returns false.

Làm thế nào để bạn kiểm tra xem một giá trị có tồn tại trong danh sách Python không?

Chúng ta có thể sử dụng phương thức danh sách Python được xây dựng, Count (), để kiểm tra xem phần tử được truyền có tồn tại trong danh sách không.Nếu phần tử được truyền tồn tại trong danh sách, phương thức đếm () sẽ hiển thị số lần nó xảy ra trong toàn bộ danh sách.Nếu đó là một số dương khác không, nó có nghĩa là một yếu tố tồn tại trong danh sách.use the in-built python List method, count(), to check if the passed element exists in the List. If the passed element exists in the List, the count() method will show the number of times it occurs in the entire list. If it is a non-zero positive number, it means an element exists in the List.

Làm thế nào để bạn kiểm tra xem một giá trị có trong danh sách không?

Bên cạnh chức năng tìm và thay thế, bạn có thể sử dụng công thức để kiểm tra xem giá trị có nằm trong danh sách không.Chọn một ô trống, ở đây là C2 và nhập công thức này = if (isnumber (match (b2, a: a, 0)), 1,0) vào nó và nhấn phím Enter để nhận kết quả và nếu nó hiển thị1, cho biết giá trị nằm trong danh sách và nếu 0, điều đó không tồn tại.=IF(ISNUMBER(MATCH(B2,A:A,0)),1,0) into it, and press Enter key to get the result, and if it displays 1, indicates the value is in the list, and if 0, that is not exist.

Làm thế nào để bạn kiểm tra xem có giá trị không có trong danh sách không?

Sử dụng toán tử trong để kiểm tra xem bất kỳ mục nào trong danh sách không, ví dụ:Nếu không có trong my_list:.Các thử nghiệm trong nhà điều hành để thành viên.Ví dụ, x trong l đánh giá là true nếu x là thành viên của L, nếu không nó đánh giá là sai., e.g. if None in my_list: . The in operator tests for membership. For example, x in l evaluates to True if x is a member of l , otherwise it evaluates to False .