Hướng dẫn python split ignore empty - python split bỏ qua rỗng

Chia chuỗi phân tách và bỏ qua các chuỗi trống trong python #

Để phân chia một chuỗi và bỏ qua các chuỗi trống:

  1. Sử dụng phương thức str.split() để chia chuỗi thành một danh sách.
  2. Truyền None làm đối số đầu tiên cho hàm filter() và danh sách là thứ hai.
  3. Hàm filter() sẽ loại bỏ tất cả các chuỗi trống khỏi danh sách.

Copied!

my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['one', 'two', 'three'] # Alternative (list comprehension) # 👇️ ['one', 'two', 'three'] print([word for word in my_str.split(',') if word])

Chúng tôi đã sử dụng phương thức str.split() để chia chuỗi thành một danh sách.

Copied!

my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))

Phương thức str.split () chia chuỗi thành một danh sách các chuỗi con bằng cách sử dụng dấu phân cách.

Phương thức lấy 2 tham số sau:

TênSự mô tả
máy tách biệtChia chuỗi thành chuỗi con trên mỗi lần xuất hiện
MaxSplitNhiều nhất

Copied!

my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))
1 chia tách được thực hiện (tùy chọn)

Nếu bộ phân cách không được tìm thấy trong chuỗi, một danh sách chỉ chứa 1 phần tử được trả về.

Bước tiếp theo là sử dụng hàm filter() để loại trừ tất cả các chuỗi trống khỏi kết quả.

Copied!

my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['one', 'two', 'three']

Hàm bộ lọc có hàm và có thể lặp lại như các đối số và xây dựng một trình lặp lại từ các phần tử của có thể điều chỉnh được hàm trả về giá trị sự thật.

Nếu bạn vượt qua None cho đối số chức năng, tất cả các yếu tố giả mạo của IT có thể bị xóa.

Tất cả các giá trị không phải là sự thật được coi là giả mạo. Các giá trị giả trong Python là:

  • Các hằng số được xác định là giả mạo: None

    Copied!

    my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))
    5.
  • Copied!

    my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))
    6 (không) thuộc bất kỳ loại số nào
  • Trình tự và bộ sưu tập trống:

    Copied!

    my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))
    7 (Chuỗi trống),

    Copied!

    my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))
    8 (Tuple trống),

    Copied!

    my_str = ',one,two,three,' # 👇️ ['', 'one', 'two', 'three', ''] print(my_str.split(','))
    9 (danh sách trống),

    Copied!

    my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['one', 'two', 'three']
    0 (Từ điển trống),

    Copied!

    my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['one', 'two', 'three']
    1 (bộ trống),

    Copied!

    my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['one', 'two', 'three']
    2 (phạm vi trống).

Lưu ý rằng hàm filter() trả về một đối tượng bộ lọc (không phải danh sách). Nếu bạn cần chuyển đổi đối tượng thành danh sách, hãy chuyển nó sang lớp

Copied!

my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['one', 'two', 'three']
4.

Hành vi mặc định của việc giữ các chuỗi trống sau khi sử dụng str.split() là để chúng tôi có thể tham gia danh sách vào cùng một chuỗi, sử dụng cùng một dấu phân cách.

Copied!

my_str = ',one,two,three,' my_list = my_str.split(',') print(my_list) # 👉️ ['', 'one', 'two', 'three', ''] my_str_again = ','.join(my_list) print(my_str_again) # 👉️ ',one,two,three,'

Nếu chúng tôi loại bỏ các chuỗi trống khỏi danh sách và sau đó tham gia danh sách vào một chuỗi, cuối cùng chúng tôi sẽ loại bỏ dấu phẩy dẫn đầu và theo dõi.

Copied!

my_str = ',one,two,three,' my_list = list(filter(None, my_str.split(','))) print(my_list) # 👉️ ['', 'one', 'two', 'three', ''] my_str_again = ','.join(my_list) print(my_str_again) # 👉️ 'one,two,three'

Một cách tiếp cận khác để phân chia một chuỗi và bỏ qua các chuỗi trống là sử dụng khả năng hiểu danh sách.

Để phân chia một chuỗi và bỏ qua các chuỗi trống:

  1. Sử dụng phương thức str.split() để chia chuỗi thành một danh sách.
  2. Sử dụng danh sách hiểu để lặp lại trong danh sách.
  3. Trên mỗi lần lặp, kiểm tra xem mục danh sách có phải là sự thật để loại trừ các chuỗi trống khỏi kết quả không.

Copied!

my_str = ',one,two,three,' my_list = [word for word in my_str.split(',') if word] print(my_list) # 👉️ ['one', 'two', 'three']

Chúng tôi đã sử dụng phương thức str.split() để phân chia chuỗi trên mỗi lần xuất hiện của dấu phẩy và danh sách hiểu để lặp lại trong danh sách.

Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.

Trên mỗi lần lặp, chúng tôi chỉ cần kiểm tra xem chuỗi có phải là sự thật không và vì các chuỗi trống thì không, chúng tôi loại trừ chúng khỏi kết quả.

Cách tiếp cận mà bạn chọn là một vấn đề sở thích cá nhân. Phương pháp hiểu danh sách sẽ dễ đọc hơn một chút và rõ ràng hơn nếu bạn không quen thuộc với cách hoạt động của hàm filter() khi được thông qua None như là đối số đầu tiên.