Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Nhóm các chuỗi liền kề trong List

Khi cần nhóm các phần tử liền kề của chuỗi có mặt trong list, ta định nghĩa phương thức dùng groupby và yield.

Ví dụ

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

  • Hàm string_check kiểm tra kiểu str.
  • Hàm group_string dùng groupby với key là string_check, yield list nhóm chuỗi hoặc yield từng phần tử không phải chuỗi.
  • Định nghĩa list, gọi group_string, unpack kết quả, hiển thị.