无法删除字符串列表的特定值
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]
希望对您有所帮助!
所以,我想做的是删除字符串列表的一些特定值,我尝试使用正则表达式但没有成功,我想删除所有没有小数点的值,我不能只是从某个索引中获取数字,因为 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]
希望对您有所帮助!