You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以空字符串("")为分隔符分割Python列表?

看来你是想把这个夹杂大量空字符串的工单列表,以空串为分隔符分割成一个个独立的工单信息组对吧?这在处理这类结构化但格式有点杂乱的列表时很常见,我给你两种实用的实现方法:

方法一:手动遍历分组(逻辑清晰易理解)

这种方法通过遍历列表,手动收集非空元素,遇到空串时就把当前收集的有效信息组存入结果,适合刚接触Python的朋友快速理解逻辑:

original_list = ['', u'WO0000008971346', u'', u'Low', u'Assigned', u'', u'', '', u'WO0000008971321', u'', u'Low', u'Assigned', u'', u'', '', u'WO0000008971307', u'', u'Low', u'Assigned', u'', u'', '', u'WO0000008971247', u'', u'Low', u'Pending', u'Client Action Required', u'17/04/2018 15:08:49','', u'WO0000008971245',u'', u'Low', u'Pending', u'Client Action Required', u'17/04/2018 15:07:10','', u'WO0000008971235', u'', u'Low', u'In Progress...']

result = []
current_group = []

for item in original_list:
    if item != '':
        # 非空元素加入当前工单组
        current_group.append(item)
    else:
        # 遇到空串时,如果当前组有内容,就存入结果并重置
        if current_group:
            result.append(current_group)
            current_group = []
# 处理列表末尾的最后一组(避免遗漏)
if current_group:
    result.append(current_group)

# 输出结果
for idx, group in enumerate(result, 1):
    print(f"工单 {idx}: {group}")

运行后会得到每个工单的有效信息组:

工单 1: ['WO0000008971346', 'Low', 'Assigned']
工单 2: ['WO0000008971321', 'Low', 'Assigned']
工单 3: ['WO0000008971307', 'Low', 'Assigned']
工单 4: ['WO0000008971247', 'Low', 'Pending', 'Client Action Required', '17/04/2018 15:08:49']
工单 5: ['WO0000008971245', 'Low', 'Pending', 'Client Action Required', '17/04/2018 15:07:10']
工单 6: ['WO0000008971235', 'Low', 'In Progress...']

方法二:使用itertools.groupby简化实现(简洁高效)

如果你熟悉Python标准库,itertools.groupby可以帮你一行搞定分组逻辑,它会自动把连续的相同特征元素归类:

from itertools import groupby

original_list = ['', u'WO0000008971346', u'', u'Low', u'Assigned', u'', u'', '', u'WO0000008971321', u'', u'Low', u'Assigned', u'', u'', '', u'WO0000008971307', u'', u'Low', u'Assigned', u'', u'', '', u'WO0000008971247', u'', u'Low', u'Pending', u'Client Action Required', u'17/04/2018 15:08:49','', u'WO0000008971245',u'', u'Low', u'Pending', u'Client Action Required', u'17/04/2018 15:07:10','', u'WO0000008971235', u'', u'Low', u'In Progress...']

# 按元素是否非空分组,只保留非空元素的组
result = [list(group) for key, group in groupby(original_list, lambda x: x != '') if key]

# 输出结果
for idx, group in enumerate(result, 1):
    print(f"工单 {idx}: {group}")

这个方法的逻辑和手动遍历是一致的,但代码更简洁,适合处理大规模数据时使用。

内容的提问来源于stack exchange,提问作者Hiddenx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:27:38