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”,將結果分配給一個變數。
這將作為輸出顯示在控制檯上。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP