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”,將結果分配給一個變數。

  • 這將作為輸出顯示在控制檯上。

更新時間:21-Sep-2021

191 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.