是否可以在不诉诸列表理解的情况下剥离下面的可迭代对象?>>> 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']
6 回答
慕村225694
TA贡献1880条经验 获得超4个赞
您实际上不需要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']
陪伴而非守候
TA贡献1757条经验 获得超8个赞
一种使用方式 re.split
import re
print (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']
添加回答
举报
0/150
提交
取消