Hướng dẫn python find values in list - python tìm giá trị trong danh sách

Đối với câu hỏi đầu tiên của bạn: "

matches = filter[fulfills_some_condition, lst]
5" hoàn toàn tốt và sẽ hoạt động nếu
matches = filter[fulfills_some_condition, lst]
6 bằng một trong các yếu tố bên trong
matches = filter[fulfills_some_condition, lst]
7. Mục phải khớp chính xác với một mục trong danh sách. Chẳng hạn,
matches = filter[fulfills_some_condition, lst]
8 và
matches = filter[fulfills_some_condition, lst]
9 không khớp. Giá trị điểm nổi đặc biệt có thể bị không chính xác. Ví dụ,
next[x for x in lst if ...]
0.

Đối với câu hỏi thứ hai của bạn: Thực tế có một số cách có thể nếu "tìm" những thứ trong danh sách.

Kiểm tra xem có gì đó bên trong không

Đây là trường hợp sử dụng mà bạn mô tả: kiểm tra xem một cái gì đó có trong danh sách hay không. Như bạn đã biết, bạn có thể sử dụng toán tử

next[x for x in lst if ...]
1 cho điều đó:

3 in [1, 2, 3] # => True

Lọc một bộ sưu tập

Đó là, tìm tất cả các yếu tố trong một chuỗi đáp ứng một điều kiện nhất định. Bạn có thể sử dụng danh sách hiểu hoặc biểu thức máy phát cho điều đó:

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]

Cái sau sẽ trả lại một trình tạo mà bạn có thể tưởng tượng như một loại danh sách lười biếng sẽ chỉ được xây dựng ngay khi bạn lặp lại thông qua nó. Nhân tiện, cái đầu tiên hoàn toàn tương đương với

matches = filter[fulfills_some_condition, lst]

Trong Python 2. Ở đây bạn có thể thấy các chức năng bậc cao tại nơi làm việc. Trong Python 3,

next[x for x in lst if ...]
2 không trả lại danh sách, mà là một đối tượng giống như máy phát.

Tìm sự xuất hiện đầu tiên

Nếu bạn chỉ muốn điều đầu tiên phù hợp với một điều kiện [nhưng bạn chưa biết nó là gì], thì cũng tốt khi sử dụng một vòng lặp [có thể sử dụng mệnh đề

next[x for x in lst if ...]
3, điều này không thực sự nổi tiếng]. Bạn cũng có thể dùng

next[x for x in lst if ...]

sẽ trả lại trận đấu đầu tiên hoặc tăng

next[x for x in lst if ...]
4 nếu không tìm thấy. Ngoài ra, bạn có thể sử dụng

next[[x for x in lst if ...], [default value]]

Tìm vị trí của một mặt hàng

Đối với các danh sách, cũng có phương thức

next[x for x in lst if ...]
5 đôi khi có thể hữu ích nếu bạn muốn biết nơi một phần tử nhất định nằm trong danh sách:

[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError

Tuy nhiên, lưu ý rằng nếu bạn có bản sao,

next[x for x in lst if ...]
6 luôn trả về chỉ số thấp nhất: ......

[1,2,3,2].index[2] # => 1

Nếu có các bản sao và bạn muốn tất cả các chỉ mục thì bạn có thể sử dụng

next[x for x in lst if ...]
7 thay thế:

[i for i,x in enumerate[[1,2,3,2]] if x==2] # => [1, 3]

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

Có một vài 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ỉ số của một yếu 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
    next[x for x in lst if ...]
    
    8,
  • sử dụng
    next[x for x in lst if ...]
    
    9,
  • và cuối cùng, sử dụng danh sách hiểu và hàm
    next[x for x in lst if ...]
    
    7.

Cụ thể, đây là những gì chúng tôi sẽ bao quát về chiều sâu:

  1. Tổng quan về danh sách trong Python
    1. Cách lập chỉ mục hoạt động
  2. Sử dụng phương thức
    next[x for x in lst if ...]
    
    8 để tìm chỉ mục của một mục 1. Sử dụng các tham số tùy chọn với phương thức
    next[x for x in lst if ...]
    
    8
    1.Use optional parameters with the
    next[x for x in lst if ...]
    
    8 method
  3. Nhận các chỉ số của tất cả các lần xuất hiện của một mục trong danh sách
    1. Sử dụng
      next[x for x in lst if ...]
      
      9 để nhận các chỉ số của tất cả các lần xuất hiện của một mục trong danh sách
    2. Sử dụng danh sách hiểu và hàm
      next[x for x in lst if ...]
      
      7 để nhận các chỉ số của tất cả các lần xuất hiện của một mục trong danh sách

Danh sách trong Python là gì?

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

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

Các mặt hàng được đặt và đặt bên trong ngoặc vuông,

next[[x for x in lst if ...], [default value]]
5. Mỗi vật phẩm bên trong dấu ngoặc vuông được phân tách bằng dấu phẩy,
next[[x for x in lst if ...], [default value]]
6.

# a list called 'my_information' that contains strings and numbers
my_information = ["John Doe", 34, "London", 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ỳ loại dữ liệu nào, nghĩa là các yếu tố danh sách có thể không đồng nhất.

Không giống như các 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à năng động. Danh sách các mục có thể được cập nhật, các mục mới có thể được thêm vào danh sách và bất kỳ mục nào cũng có thể được xóa bất cứ lúc nào trong suốt cuộc đời của chương trình.

Tổng quan về việc lập chỉ mục trong Python

Như đã đề cập, danh sách là một bộ sưu tập các mặt hàng. Cụ thể, chúng là một bộ sưu tập các mặt hàng được đặt hàng và chúng bảo tồn thứ tự đặt ra và xác định cho hầu hết các phần.

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

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

Các chỉ số trong Python, và trong tất cả các ngôn ngữ lập trình, bắt đầu tại

next[[x for x in lst if ...], [default value]]
7 chứ không phải
next[[x for x in lst if ...], [default value]]
8.not
next[[x for x in lst if ...], [default value]]
8.

Chúng ta 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 không được chỉ số và đếm bắt đầu từ

next[[x for x in lst if ...], [default value]]
7.

Phần tử danh sách đầu tiên,

[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
0, có chỉ số là
next[[x for x in lst if ...], [default value]]
7. Phần tử danh sách thứ hai,
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
2, có chỉ số là
next[[x for x in lst if ...], [default value]]
8. Phần tử danh sách thứ ba,
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
4, có chỉ số là
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
5. Phần tử danh sách Forth,
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
6, có chỉ số là
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
7.
The second list element,
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
2, has an index of
next[[x for x in lst if ...], [default value]]
8.
The third list element,
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
4, has an index of
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
5.
The forth list element,
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
6, has an index of
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
7.

Các chỉ số hữu ích để 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ỳ yếu 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 bao gồm tên của danh sách và sau đó trong các 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 sẽ truy cập từng mục bằng chỉ mục của nó:

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
0

Nhưng những gì về việc tìm kiếm chỉ số của một mục danh sách trong Python?

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

Cho đến nay bạn đã thấy 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ì xảy ra mặc dù 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?

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

Đối với điều đó, phương pháp

next[x for x in lst if ...]
8 tích hợp 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

next[x for x in lst if ...]
8 trông như thế này:

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
1

Hãy phá vỡ nó:

  • matches = filter[fulfills_some_condition, lst]
    
    7 là tên của danh sách bạn đang tìm kiếm.
  • [1,2,3,2].index[2] # => 1
    
    1 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.
  • matches = filter[fulfills_some_condition, lst]
    
    6 là tham số cần thiết. Đó là yếu tố mà bạn đang tìm kiếm chỉ mục.
  • [1,2,3,2].index[2] # => 1
    
    3 là tham số tùy chọn đầu tiên. Đó là chỉ mục mà bạn sẽ bắt đầu tìm kiếm của mình.
  • [1,2,3,2].index[2] # => 1
    
    4 Tham số tùy chọn thứ hai. Đó là chỉ mục mà bạn sẽ kết thúc tìm kiếm của mình.

Hãy xem một ví dụ chỉ bằng tham số cần thiết:

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
2

Trong ví dụ trên, phương thức

next[x for x in lst if ...]
8 chỉ lấy một đối số là phần tử mà bạn đang tìm kiếm.

Hãy nhớ rằng đối số bạn vượt qua là nhạy cảm trường hợp. Điều này có nghĩa là nếu bạn đã vượt qua "Python", chứ không phải "Python", bạn sẽ nhận được một lỗi là "Python" với chữ thường "P" không phải là một phần của 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 truyền dưới dạng đối số cho phương thức.

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

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
3

Nếu bạn thử và tìm kiếm một mục nhưng không có khớp nào trong danh sách bạn đang tìm kiếm, Python sẽ gây ra lỗi vì giá trị trả về - cụ thể nó sẽ trả về

[1,2,3,2].index[2] # => 1
6.

Đ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 chặn điều này xảy ra, là kết thúc cuộc gọi đến phương thức

next[x for x in lst if ...]
8 trong một khối
[1,2,3,2].index[2] # => 1
8.

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

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
4

Một cách khác là kiểm tra xem mục này có nằm trong danh sách ở nơi đầu tiên không, trước khi tìm kiếm số chỉ mục của nó. Đầu ra sẽ là một giá trị boolean - nó sẽ đúng hoặc sai.

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
5

Cách sử dụng các tham số tùy chọn với phương thức
next[x for x in lst if ...]
8

Chúng ta hãy xem ví dụ sau:

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
6

Trong danh sách

[i for i,x in enumerate[[1,2,3,2]] if x==2] # => [1, 3]
0 có ba trường hợp của chuỗi "Python" đang được tìm kiếm.

Như một cách để kiểm tra, bạn có thể làm việc ngược như trong trường hợp này, danh sách là nhỏ.

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

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
7

Có một ở vị trí

next[[x for x in lst if ...], [default value]]
8, một vị trí khác ở vị trí
[1,2,3].index[2] # => 1
[1,2,3].index[4] # => ValueError
7 và người cuối cùng ở vị trí
[i for i,x in enumerate[[1,2,3,2]] if x==2] # => [1, 3]
3.

Tại sao họ không hiển thị trong đầu ra khi phương thức

next[x for x in lst if ...]
8 được sử dụng?

Khi phương thức

next[x for x in lst if ...]
8 được sử dụng, giá trị trả về chỉ là sự 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.first occurence of the item in the list. The rest of the occurrences are not returned.

Phương thức

next[x for x in lst if ...]
8 chỉ trả về chỉ mục của vị trí mà mục xuất hiện lần đầu tiên.first time.

Bạn có thể thử chuyển các tham số

[1,2,3,2].index[2] # => 1
3 và
[1,2,3,2].index[2] # => 1
4 tùy chọn cho phương thức
next[x for x in lst if ...]
8.

Bạn đã biết rằng lần xuất hiện đầu tiên bắt đầu tại INDEX

next[[x for x in lst if ...], [default value]]
8, vì vậy đó có thể là giá trị của tham số
[1,2,3,2].index[2] # => 1
3.

Đối với tham số

[1,2,3,2].index[2] # => 1
4, trước tiên bạn có thể tìm thấy độ dài của danh sách.

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

# a list called 'my_information' that contains strings and numbers
my_information = ["John Doe", 34, "London", 1.76]
3:

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
8

Giá trị cho tham số

[1,2,3,2].index[2] # => 1
4 sau đó sẽ là độ dài của danh sách trừ 1. Chỉ số của mục cuối cùng trong danh sách luôn ít hơn một chiều dài của danh sách.

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

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
9

Đầu ra vẫn chỉ trả về trường hợp đầu tiên!

Mặc dù các tham số

[1,2,3,2].index[2] # => 1
3 và
[1,2,3,2].index[2] # => 1
4 cung cấp một loạt các vị trí cho tìm kiếm của bạn, giá trị trả về khi sử dụng phương thức
next[x for x in lst if ...]
8 vẫn chỉ là sự xuất hiện đầu tiên của mục trong danh sách.

Cách nhận các chỉ số của tất cả các lần xuất hiện của một mục trong danh sách

Sử dụng
next[x for x in lst if ...]
9 để có được các chỉ số của tất cả các lần xuất hiện của một mục trong danh sách

Chúng ta hãy lấy ví dụ tương tự mà chúng ta đã sử dụng cho đến nay.

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

matches = filter[fulfills_some_condition, lst]
0

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

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

matches = filter[fulfills_some_condition, lst]
1

Tiếp theo, sử dụng

next[x for x in lst if ...]
9. Đây là một cách để lặp lại [hoặc vòng lặp] thông qua danh sách và nhận từng mục trong danh sách ban đầu. Cụ thể, chúng tôi lặp qua số chỉ mục của từng mục.

matches = filter[fulfills_some_condition, lst]
2

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

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

Sau đó, tạo một biến, trong trường hợp này

my_information = ["John Doe", 34, "London", 1.76]
1, 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ượng lặp được đặt mà

next[x for x in lst if ...]
9 sẽ thực hiện.

Trong trường hợp này, vòng lặp sẽ lặp qua toàn bộ chiều dài của danh sách, từ đầu đến cuối. Cú pháp

my_information = ["John Doe", 34, "London", 1.76]
3 là một cách để truy cập tất cả các mục trong danh sách
[i for i,x in enumerate[[1,2,3,2]] if x==2] # => [1, 3]
0.

Hàm

my_information = ["John Doe", 34, "London", 1.76]
5 có một chuỗi các số chỉ định số mà nó sẽ bắt đầu đếm từ và số nó sẽ kết thúc việc đếm.

Hàm

# a list called 'my_information' that contains strings and numbers
my_information = ["John Doe", 34, "London", 1.76]
3 tính toán độ dài của danh sách, vì vậy trong trường hợp này, việc đếm sẽ bắt đầu vào lúc
next[[x for x in lst if ...], [default value]]
7 và kết thúc tại - nhưng không bao gồm -
my_information = ["John Doe", 34, "London", 1.76]
8, là kết thúc của danh sách.

Cuối cùng, bạn cần thiết lập một điều kiện logic.

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 tôi đã tạo trước đó".

Bạn sử dụng phương thức

my_information = ["John Doe", 34, "London", 1.76]
9 để thêm một phần tử vào danh sách.

matches = filter[fulfills_some_condition, lst]
3

Sử dụng danh sách hiểu và hàm
next[x for x in lst if ...]
7 để có được các chỉ số của tất cả các lần xuất hiện của một mục trong danh sách

Một cách khác để tìm các 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 khả năng hiểu danh sách.

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

Dưới đây là cách bạn sẽ nhận được tất cả các chỉ số của mỗi lần xuất hiện của chuỗi "Python", sử dụng danh sách hiểu:

matches = filter[fulfills_some_condition, lst]
4

Với chức năng

next[x for x in lst if ...]
7, bạn có thể lưu trữ các 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 [

matches = [x for x in lst if fulfills_some_condition[x]]
matches = [x for x in lst if x > 6]
02] cho mỗi phần tử trong danh sách [
[i for i,x in enumerate[[1,2,3,2]] if x==2] # => [1, 3]
0] được truyền làm đối số cho hàm.

next[x for x in lst if ...]
5 dành cho số chỉ mục của mục danh sách và
matches = filter[fulfills_some_condition, lst]
6 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ừ

next[[x for x in lst if ...], [default value]]
7 và tăng mỗi lần đ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 sự hiểu biết 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".

Sự kết luận

Và bạn có nó rồi đấy! Bây giờ 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 các chỉ số của nhiều lần xuất hiện của một mục, trong một danh sách trong 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 máy tính khoa học của Freecodecamp với chứng nhận Python.

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

Cảm ơn bạn đã đọc và mã hóa hạnh phúc!

Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để tìm một từ trong danh sách Python?

Python Tìm chuỗi trong danh sách bằng cách sử dụng Count [], chúng ta cũng có thể sử dụng hàm Count [] để có được số lần xuất hiện của một chuỗi trong danh sách. Nếu đầu ra của nó là 0, thì điều đó có nghĩa là chuỗi không có trong danh sách. l1 = ['a', 'b', 'c', 'd', 'a', 'a', 'c'] s = 'a' Count = l1.using count[] We can also use count[] function to get the number of occurrences of a string in the list. If its output is 0, then it means that string is not present in the list. l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C'] s = 'A' count = l1.

Làm thế nào để bạn tìm thấy chỉ mục của một phần tử trong danh sách Python?

Để tạo điều kiện cho điều này, Python có chức năng sẵn có gọi là index [].Hàm này lấy phần tử làm đối số và trả về chỉ mục.Bằng cách sử dụng chức năng này, chúng tôi có thể tìm thấy chỉ mục của một phần tử trong danh sách trong Python.Python has an inbuilt function called index[]. This function takes in the element as an argument and returns the index. By using this function we are able to find the index of an element in a list in Python.

Làm thế nào để bạn kiểm tra xem một chuỗi có chứa một phần tử từ danh sách trong Python không?

Sử dụng bất kỳ [] để kiểm tra xem chuỗi có chứa phần tử từ danh sách không.Sử dụng bất kỳ chức năng nào là cách cổ điển nhất mà bạn có thể thực hiện nhiệm vụ này và cũng hiệu quả.Hàm này kiểm tra đối sánh trong chuỗi với khớp của từng phần tử của danh sách. to check if string contains element from list. Using any function is the most classical way in which you can perform this task and also efficiently. This function checks for match in string with match of each element of list.

Làm thế nào để bạn tìm kiếm một danh sách?

Tìm kiếm trong một danh sách..
Mở danh sách bạn muốn tìm kiếm trong ..
Chọn hộp tìm kiếm ở đầu cửa sổ ứng dụng ..
Nhập từ hoặc từ bạn muốn tìm kiếm.....
Chọn bất kỳ mục nào trong danh sách đó để mở mục đó và xem tất cả các chi tiết của nó ..

Bài Viết Liên Quan

Chủ Đề