Computer >> Máy Tính >  >> Lập trình >> Python

Python - Nhóm các chuỗi liền kề trong danh sách

Khi được yêu cầu nhóm các phần tử liền kề của một chuỗi có trong danh sách, một phương thức được xác định sử dụng "groupby" và "output".

Ví dụ

Dưới đây là một minh chứng về điều tương tự

from itertools import groupby

def string_check(elem):
   return isinstance(elem, str)

def group_string(my_list):

      for key, grp in groupby(my_list, key=string_check):
         if key:
            yield list(grp)
         else:
            yield from grp
my_list = [52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]

print("The list is :")
print(my_list)

my_result = [*group_string(my_list)]

print("The result is:")
print(my_result)

Đầu ra

The list is :
[52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]
The result is:
[52, 11, ['py', 'th', 'on'], 11, 52, ['i', 's'], 18, ['f', 'un'], 99]

Giải thích

  • Một phương thức có tên là ‘string_check’ được định nghĩa sẽ nhận một danh sách làm tham số và kiểm tra xem nó có thuộc một loại phiên bản nhất định hay không.

  • Một phương thức khác có tên là ‘group_string’ được xác định sẽ nhận một danh sách làm tham số và sử dụng lợi nhuận để trả về kết quả đầu ra bằng phương thức ‘groupby’.

  • Bên ngoài phương thức, một danh sách được xác định và hiển thị trên bảng điều khiển.

  • ‘Group_string’ được gọi và kết quả được gán cho một biến.

  • Điều này được hiển thị dưới dạng đầu ra trên bảng điều khiển.