【发布时间】:2014-10-16 18:41:31
【问题描述】:
我有以下清单:
L = [('carga', 'NCFS000', 'superior', 'AQ0CS0'),('carga', 'NCFS000', 'frontal', 'AQ0CS0')]
如何删除'NCFS000', 'AQ0CS0' 和方括号?,如下所示:
[('carga', 'superior'),('carga', 'frontal')]
这是我准备好的尝试:
def remove_values_from_list(the_list, val):
return [value for value in the_list if value != val]
print "Esta es el bigrama final:\n",\
remove_values_from_list(L, 'NCFS000')
但 id 仍在列表中,我怎样才能删除 id 并以所需格式获取所有单词?我如何为这个任务声明一个正则表达式?谢谢
【问题讨论】:
-
我怎样才能“为这个任务声明一个正则表达式”是完全错误的问题。处理已解析为良好数据结构的数据几乎总是比将该数据结构转换为字符串并尝试将其正则表达式转换为可以解析回不同数据结构的东西更容易。
-
那么,使用嵌入正则表达式的数据结构更有效吗?
-
首先,“更高效”几乎总是完全无关紧要;如果它们都是线性时间,而且这不是瓶颈,谁在乎哪个更快?但是,是的,在少数重要的情况下,使用您已经拥有的数据结构通常比将其表示为字符串、使用正则表达式并重新解析它更有效。更重要的是,对于您和其他必须处理您的代码的人来说,它几乎肯定会更容易阅读、理解、扩展和调试。
标签: python regex list parsing sorting