Python - 在列表中对连续字符串进行分组
当需要对列表中存在的字符串的连续元素进行分组时,定义了一个使用“groupby”和“yield”的方法。
示例
以下对此进行了演示
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)
输出
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]
解释
定义了一个名为“string_check”的方法,它将列表作为参数,并检查它是否属于某个实例类型。
定义了另一个名为“group_string”的方法,它将列表作为参数,并使用 yield 使用“groupby”方法返回输出。
在方法外部,定义了一个列表并在控制台上显示。
调用“group_string”,将结果分配给一个变量。
这将作为输出显示在控制台上。
广告