如何在基于字符分隔符将列表拆分为子列表时跳过空子字符串

2024-05-21 08:29:34 发布

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

我有以下清单

list_big = ['90', '=', 'C', '44', '=']

我想要的输出是连接'='事件之间的所有字符串,如下所示:

list_smaller = ['90', 'C44']

我运行:

list_smaller = [l.split(',') for l in ','.join(list_big).split('=')]

但我得到:

list_smaller = [['90', ''], ['', 'C', '44', ''], ['']]

如何获得所需的输出


Tags: 字符串infor事件listsplitjoinbig
3条回答

这是因为,如果删除该字符串,您将使用','连接该字符串,您应该可以:

list_smaller = [i for i in ''.join(list_big).split('=') if i]

下次试着将你的理解列表分开,这样你就可以看到发生了什么:

list_big = ['90', '=', 'C', '44', '=']
joined_list_big = ','.join(list_big).split('=')
joined_list_big
['90,', ',C,44,', '']

在这里你可以看到这不是你想要的

可以使用for循环:

new_list = []

aux = ''
for item in list_big:
    if item != '=':
        aux += item
    else:
        new_list.append(aux)
        aux = ''

if aux:
    new_list.append(aux)

print(new_list)

输出:

['90', 'C44']

您可以使用下面的列表理解;使用空字符串而不是逗号连接,然后使用if l将非空字符串的元素仅放入列表中

>>> [l for l in ''.join(list_big).split('=') if l]
['90', 'C44']

相关问题 更多 >