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("名单是:")

print(my_list)

my_result = [*group_string(my_list)]

print("结果是:")

print(my_result)

输出结果
名单是:

[52, 11, 'py', 'th', 'on', 11, 52, 'i', 's', 18, 'f', 'un', 99]

结果是:

[52, 11, ['py', 'th', 'on'], 11, 52, ['i', 's'], 18, ['f', 'un'], 99]

解释

  • 定义了一个名为“string_check”的方法,它将一个列表作为参数并检查它是否属于某个实例类型。

  • 定义了另一个名为“group_string”的方法,它将列表作为参数,并使用“groupby”方法使用 yield 返回输出。

  • 在该方法之外,定义了一个列表并显示在控制台上。

  • 调用“group_string”并将结果分配给变量。

  • 这在控制台上显示为输出。

以上是 Python - 将列表中的连续字符串分组 的全部内容, 来源链接: utcz.com/z/353577.html

回到顶部