Hướng dẫn how do you filter a string list in python? - làm thế nào để bạn lọc một danh sách chuỗi trong python?

Lọc đơn giản này có thể đạt được theo nhiều cách với Python. Cách tiếp cận tốt nhất là sử dụng "danh sách toàn diện" như sau:

>>> lst = ['a', 'ab', 'abc', 'bac']
>>> [k for k in lst if 'ab' in k]
['ab', 'abc']

Một cách khác là sử dụng hàm

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
1. Trong Python 2:

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']

Trong Python 3, nó trả về một trình lặp thay vì một danh sách, nhưng bạn có thể đúc nó:

>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']

Mặc dù tốt hơn là thực hành để sử dụng một sự hiểu biết.

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách lọc các yếu tố danh sách bằng cách sử dụng chức năng Python

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 tích hợp.: in this tutorial, you’ll learn how to filter list elements by using the built-in Python
>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 function.

Giới thiệu về hàm Python Filter ()

Đôi khi, bạn cần lặp lại các yếu tố của một danh sách và chọn một số trong số chúng dựa trên các tiêu chí được chỉ định.

Giả sử rằng bạn có danh sách sau của

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
3:

scores = [70, 60, 80, 90, 50]

Code language: Python (python)

Để có được tất cả các phần tử từ danh sách

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
3 trong đó mỗi phần tử lớn hơn hoặc bằng 70, bạn sử dụng mã sau:

scores = [70, 60, 80, 90, 50] filtered = [] for score in scores: if score >= 70: filtered.append(score) print(filtered)

Code language: Python (python)

Làm thế nào nó hoạt động.

  • Đầu tiên, xác định một danh sách trống (
    >>> filter(lambda k: 'ab' in k, lst)
    ['ab', 'abc']
    
    5) sẽ giữ các yếu tố từ danh sách
    >>> filter(lambda k: 'ab' in k, lst)
    ['ab', 'abc']
    
    3.
  • Thứ hai, lặp lại các yếu tố của danh sách
    >>> filter(lambda k: 'ab' in k, lst)
    ['ab', 'abc']
    
    3. Nếu phần tử lớn hơn hoặc bằng 70, hãy thêm nó vào danh sách
    >>> filter(lambda k: 'ab' in k, lst)
    ['ab', 'abc']
    
    5.
  • Thứ ba, hiển thị danh sách
    >>> filter(lambda k: 'ab' in k, lst)
    ['ab', 'abc']
    
    5 lên màn hình.

Python có chức năng tích hợp có tên

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 cho phép bạn lọc danh sách (hoặc một tuple) theo cách đẹp hơn.

Sau đây cho thấy cú pháp của hàm

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2:

filter(fn, list)

Code language: Python (python)

Hàm

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 lặp lại các phần tử của
>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']
3 và áp dụng hàm
>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']
4 cho mỗi phần tử. Nó trả về một trình lặp cho các phần tử trong đó
>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']
4 trả về
>>> list(filter(lambda k: 'ab' in k, lst))
['ab', 'abc']
6.

Trên thực tế, bạn có thể chuyển bất kỳ sự khác biệt nào cho đối số thứ hai của hàm

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2, không chỉ là một danh sách.

Sau đây cho thấy cách sử dụng hàm

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 để trả về danh sách
>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
3 trong đó mỗi điểm lớn hơn hoặc bằng 70:

scores = [70, 60, 80, 90, 50] filtered = filter(lambda score: score >= 70, scores) print(list(filtered))

Code language: Python (python)

Output:

[70, 80, 90]

Code language: Python (python)

Vì hàm

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 trả về trình lặp, bạn có thể sử dụng vòng lặp

scores = [70, 60, 80, 90, 50]

Code language: Python (python)
1 để lặp lại nó. Hoặc bạn có thể sử dụng chức năng

scores = [70, 60, 80, 90, 50]

Code language: Python (python)
2 để chuyển đổi trình lặp thành danh sách.

Sử dụng hàm Python Filter () để lọc danh sách các bộ dữ liệu ví dụ

Giả sử bạn có danh sách các bộ dữ liệu sau:

countries = [ ['China', 1394015977], ['United States', 329877505], ['India', 1326093247], ['Indonesia', 267026366], ['Bangladesh', 162650853], ['Pakistan', 233500636], ['Nigeria', 214028302], ['Brazil', 21171597], ['Russia', 141722205], ['Mexico', 128649565] ]

Code language: Python (python)

Mỗi yếu tố trong một danh sách là một tuple chứa tên và dân số của đất nước.

Để có được tất cả các quốc gia có dân số lớn hơn 300 triệu, bạn có thể sử dụng chức năng

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
2 như sau:

countries = [ ['China', 1394015977], ['United States', 329877505], ['India', 1326093247], ['Indonesia', 267026366], ['Bangladesh', 162650853], ['Pakistan', 233500636], ['Nigeria', 214028302], ['Brazil', 21171597], ['Russia', 141722205], ['Mexico', 128649565] ] populated = filter(lambda c: c[1] > 300000000, countries) print(list(populated))

Code language: Python (python)

Output:

>>> filter(lambda k: 'ab' in k, lst)
['ab', 'abc']
0

Bản tóm tắt

  • Sử dụng hàm Python
    >>> filter(lambda k: 'ab' in k, lst)
    ['ab', 'abc']
    
    2 để lọc danh sách (hoặc một tuple).

Bạn có thấy hướng dẫn này hữu ích không?

Làm thế nào để bạn lọc một danh sách trong danh sách Python?

Câu trả lời ngắn: Để lọc danh sách danh sách cho một điều kiện trên danh sách bên trong, hãy sử dụng câu lệnh Danh sách hiểu [x cho x trong danh sách nếu điều kiện (x)] và thay thế điều kiện (x) bằng điều kiện lọc của bạn trả về đúng để bao gồmLiệt kê X, và sai.use the list comprehension statement [x for x in list if condition(x)] and replace condition(x) with your filtering condition that returns True to include inner list x , and False otherwise.

Bạn có thể sử dụng bộ lọc trên một chuỗi không?

Bạn không thể sử dụng Filter () trên một chuỗi vì nó là một mảng..

Bộ lọc () làm gì trong Python?

Python's Filter () là một chức năng tích hợp cho phép bạn xử lý một thứ có thể lặp lại và trích xuất những mục đáp ứng một điều kiện nhất định.Quá trình này thường được gọi là hoạt động lọc.allows you to process an iterable and extract those items that satisfy a given condition. This process is commonly known as a filtering operation.

Làm thế nào để bạn lọc các chữ cái trong Python?

Đưa ra ma trận, hãy viết một chương trình Python để trích xuất các hàng chỉ chứa bảng chữ cái trong chuỗi của nó ...
Examples:.
Phương pháp số 1: Sử dụng isalpha () + all () + danh sách hiểu ..
Output:.
Phương thức số 2: Sử dụng Filter () + lambda + Join () + isalpha ().
Output:.
Độ phức tạp về thời gian: O (N2).
Độ phức tạp không gian: O (N).