Python使用一些分隔符进行拆分,不会在列表中获取空元素

Python使用一些分隔符进行拆分,不会在列表中获取空元素,python,Python,我试着用那段代码来获取一个字符串的数字,比如:“some_name[number]” 我得到了那个名单 ['asdf', '105', ''] 有人知道如果没有空元素我怎么能得到一个列表吗? 是否有一种方法可以在不删除列表中的反空元素的情况下获得该结果 您可以使用列表理解 l = ['asdf', '105', ''] l = [element for element in l if element != ''] 所以你的代码是 import re name = "asdf[105]" l

我试着用那段代码来获取一个字符串的数字,比如:“some_name[number]”

我得到了那个名单

['asdf', '105', '']
有人知道如果没有空元素我怎么能得到一个列表吗?
是否有一种方法可以在不删除列表中的反空元素的情况下获得该结果

您可以使用列表理解

l = ['asdf', '105', '']
l = [element for element in l if element != '']
所以你的代码是

import re

name = "asdf[105]"
l = [element for element in re.split("\[|\]", name) if element != '']
print(l)  # ['asdf', '105']
或者,如果您想保留一个包含空元素的列表

import re

name = "asdf[105]"
list_with_empty_elements = re.split("\[|\]", name)
list_without_empty_elements = [element for element in list_with_empty_elements if element != '']

他说“不删除列表中的反空元素”,从技术上讲,这不是删除元素,而是删除空元素elements@Andr埃斯佩雷斯·阿尔贝拉。对,编辑后添加了一个保留这两个列表的示例。可能重复了“嘿,谢谢你,很抱歉重复了一个问题”。我认为简单的解决办法是去掉空元素<代码>名称=过滤器(无,名称)
import re

name = "asdf[105]"
list_with_empty_elements = re.split("\[|\]", name)
list_without_empty_elements = [element for element in list_with_empty_elements if element != '']