如何在python上的字符串列表中每8个元素删除一个元素



假设您有一个字符串列表,如下所示:

the_list = ['02:00', '  GBP', '', 'Construction Output (MoM) (Jan)', '1.1%', '0.5%', '2.0%', '',
'02:00', '  GBP', '', 'U.K. Construction Output (YoY) (Jan)', '9.9%', '9.2%', '7.4%', '',
'02:00', '  GBP', '', 'GDP (MoM)', '0.8%', '0.2%', '-0.2%', '',
'02:00', '  GBP', '', 'GDP (YoY)', '10.0%', '9.3%', '6.0%', '',
'02:00', '  GBP', '', 'Index of Services', '1.0%', ' ', '1.2%', '']

每8个元素中就有一个出现'',这是一个空字符串,而它恰好是一个名为GBP的空字符串旁边的空字符串

如何更新the_list变量以删除字符串数组中每8个元素出现一次的''元素?

如果我理解正确,您可以使用列表理解来过滤特定索引处的值:

new_list = [word for idx, word in enumerate(the_list, 1) if idx % 8 != 0]
print(new_list)

打印:

['02:00', '  GBP', '', 'Construction Output (MoM) (Jan)', '1.1%', '0.5%', '2.0%',
'02:00', '  GBP', '', 'U.K. Construction Output (YoY) (Jan)', '9.9%', '9.2%', '7.4%',
'02:00', '  GBP', '', 'GDP (MoM)', '0.8%', '0.2%', '-0.2%',
'02:00', '  GBP', '', 'GDP (YoY)', '10.0%', '9.3%', '6.0%',
'02:00', '  GBP', '', 'Index of Services', '1.0%', ' ', '1.2%']

很简单:

del the_list[::8]  # or del the_list[7::8] if you try to delete the 7th element of each line

只需使用此代码即可找到要删除的元素在这种情况下是空字符串,在python中是假字符串,因此

for x in the_list:
if not x:
the_list.remove(x)

相关内容

  • 没有找到相关文章