python - 根据字符将 Python 字符串列表拆分为单独的列表

标签 python algorithm list

我正在尝试弄清楚如何根据列表中的字符将以下列表拆分为单独的列表。

list = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01', '@', '2014', '02:06:12', 'Mary', '"login"', '0.01']

我想在引入每个“@”符号后创建一个列表。例如,我希望输出如下:

NewList1 = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01'] 

NewList2 = ['@', '2014', '02:06:12', 'Mary', '"login"', '0.01']

这可能吗?

最佳答案

你可以使用 itertools.groupby:

import itertools as IT
import operator

seq = ['@', '2014', '00:03:01', 'Matt', '"login"', '0.01', '@', '2014', '02:06:12', 'Mary', '"login"', '0.01']

groups = (list(g) for k,g in IT.groupby(seq, lambda item: item=='@'))
print(list(IT.starmap(operator.add, IT.izip(*[groups]*2))))

打印

[['@', '2014', '00:03:01', 'Matt', '"login"', '0.01'], ['@', '2014', '02:06:12', 'Mary', '"login"', '0.01']]

关于python - 根据字符将 Python 字符串列表拆分为单独的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22747722/

相关文章:

python - 如何检查输入的字母是否在列表中?

python - 如何修复函数/符号 'pango_context_set_round_glyph_positions' 错误

python - 没有 SciPy 的 NumPy 数组的 3D 插值

algorithm - Trie 与 B+ 树

algorithm - 什么是算法的摊销分析?

java - 列出 retainAll 异常

python - 如何制作一个按顺序排列的 n 个列表的列表(以最 pythonic 的方式)?

python - 如何确定 matplotlib 轴对象的投影(2D 或 3D)?

python - 将 Django 管理显示时间设置为本地时间?

c++ - 进行变换的最快方法(移动、旋转、缩放)