带条带的可迭代链

是否可以在不诉诸列表理解的情况下剥离下面的可迭代对象?


>>> values=f.df['AvailableInTerritories'].tolist()

>>> values

['AU, CA,GB,US', 'AU, CA, GB, US', 'AU, AT, CA, GB, US', 'AU, CA, GB, US', 'AU, CA, GB, US']

>>> list_separator=','


>>> [item.strip() for item in itertools.chain.from_iterable((str(_val).split(list_separator) for _val in values))]

['AU', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US', 'AU', 'AT', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US']


GCT1015
浏览 229回答 6
6回答

慕村225694

您实际上不需要itertools.chain,还有另一种更清洁和有效的解决方案:print([x for i in values for x in i.split(', ')])输出:['AU', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US', 'AU', 'AT', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US']

陪伴而非守候

一种使用方式 re.splitimport reprint (re.split(',\s*', ','.join(values)))#['AU', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US', 'AU', 'AT', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US', 'AU', 'CA', 'GB', 'US']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python