无法删除字符串列表的特定值

Having trouble removing specific values of a list of strings

所以,我想做的是删除字符串列表的一些特定值,我尝试使用正则表达式但没有成功,我想删除所有没有小数点的值,我不能只是从某个索引中获取数字,因为 int 数字的位置不同。

这是列表的示例

['178', '34,79', '135925,82', '135926,82']
['102021', '191', '135067,69', '858,13', '859,13']
['176054330', '12', '506', '858,13', '0,00', '1,00']

我试过这样做:

re.compile(r'\d{1,5},\d{2}.*')
vend_values = list(filter(r.match, vend_name))

得到这个结果:

['34,79', '135925,82', '135926,82']
['135067,69', '858,13', '859,13']
['858,13', '0,00', '1,00']

但是它最终也删除了一些行

您不需要使用正则表达式这样花哨的东西。在 python 中,in 关键字将为您完成这项工作。您也可以使用列表理解:

my_list = ['102021', '191', '135067,69', '858,13', '859,13']
my_filtered_list = [s for s in my_list if ',' in s]

如果你想把它变成一个函数:

def list_sorter(input_list):
    return [s for s in input_list if ',' in s]

希望对您有所帮助!