python - 将连续相似的项目分组到 python 列表中

标签 python list

我有一个包含不同数据类型的列表,例如数字和字符串:

foo = [5,2,'a',8,4,'b','y',9, 'd','e','g']

假设我想查找列表中的所有连续字符串,并将它们分组在一起:

bar = [ ['a'],['b','y'],['d','e','g'] ]

我该怎么做

最佳答案

这是一个使用 groupby 的绝佳机会:

from itertools import groupby


foo = [5,2,'a',8,4,'b','y',9, 'd','e','g']
bar = [list(g) for k, g in groupby(foo, key=lambda x: isinstance(x, str)) if k]

产生所需的:

[['a'], ['b', 'y'], ['d', 'e', 'g']]

关于python - 将连续相似的项目分组到 python 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52207120/

相关文章:

python - 在 TensorFlow 中编写分段函数/在 TensorFlow 中编写 if then

c - 如何比较数字任务

java - 得墨忒耳法则 - 为什么我需要使用 setter/getter ?

python - 在 Python 中将一系列列表连接成一个列表

python - 如何查找列表中元素的所有出现?

list - CSS – 具有动态列环绕的单个列表

python - 哪些 Python/IronPython Web 开发框架适用于 Microsoft 技术栈?

python - 带有 key 和用户名/密码的 Paramiko SFTP - "Oops, unhandled type 3"

python - 合并两个字典列表

我的代码中的 Python 3.1 "Else:"问题