【发布时间】:2018-09-20 12:06:57
【问题描述】:
拆分和展平以下元组的最佳方法是什么?
我有这个元组:
(('aaaa_BBB_wacker* cccc',), ('aaaa_BBB_tttt*',), ('aaaa_BBB2_wacker,aaaa_BBB',), ('BBB_ffff',), ('aaaa_BBB2MM*\r\naaaa_BBB_cccc2MM*',), ('BBBMM\\r\\nBBB2MM BBB',), ('aaaa_BBB_cccc2MM_tttt',), ('aaaa_BBB_tttt, aaaa_BBB',))
我需要: 按\n\、\r\、\n\、\r\、"、"、""分割
并将其展平。所以最终的结果应该是这样的:
['aaaa_BBB_wacker*','cccc', 'aaaa_BBB_tttt*','aaaa_BBB2_wacker','aaaa_BBB','BBB_ffff','aaaa_BBB2MM*','naaaa_BBB_cccc2MM*','BBBMM','BBB2MM BBB','aaaa_BBB_cccc2MM_tttt','aaaa_BBB_tttt', 'aaaa_BBB']
我尝试了以下方法,最终完成了这项工作,但我必须为每个模式重复多次。
patterns = [[i.split('\\r') for i in patterns]]
patterns = [item for sublist in patterns for item in sublist]
patterns = [item for sublist in patterns for item in sublist]
patterns = [[i.split('\\n') for i in patterns]]
【问题讨论】:
-
如果您的解决方案有效,您希望它有何不同?通常做某事的最佳方式是行之有效的。
-
除了贴出的答案之外,对于展平部分,请参阅
itertools.chain.from_iterable...