如何在不使用模块的情况下拆分确定单词后的字符串列表

2024-04-25 22:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,伙计们,我如何使用关键字#将此列表拆分为子列表而不使用任何模块:

我的名单:

['w1', 'w2', '#', 'w3', '#']

我想要这个:

[['w1','w2', '#'],['w3', '#']]

Tags: 模块列表关键字w1名单伙计w3w2
2条回答

通过一个模块和一种很好的方法,您可以使用itertoolsPython标准模块库中的groupby。你知道吗

from itertools import groupby
li = ['w1', 'w2', '#', 'w3', '#']

delim = '#'

[list(g) + [delim] for k,g in groupby(li, lambda x: x == delim) if not k]
>> [['w1', 'w2', '#'], ['w3', '#']]

groupby生成一个迭代器,从iterable返回连续的键和组,lambda函数按连续的非定界符检查和组,定界符由列表条件选择中的if not k过滤掉。你知道吗

然后扩展列表以包含输出的分隔符。你知道吗

编辑:我刚刚意识到它只是说没有模块,但是为什么要这样做,特别是如果Python中有很好的库,而且您不必重新发明轮子。哦,好吧。你知道吗

如果没有模块,你可以参考其他答案。你知道吗

遍历列表并创建子列表并附加它们

result = []
sub = []
for item in original_list:
    sub.append(item)
    if item == "#":
        result.append(sub)
        sub = []

print(result)
[['w1', 'w2', '#'], ['w3', '#']]

相关问题 更多 >