我有这个清单:
mylist = ['*', 'Drama', 'Film Noir', 'Mystery', 'Romance', '*', 'Dance', 'Drama', 'Musical', '*', 'Crime', 'Drama', '*', 'Action', 'Drama', 'Period', 'Western', '*', 'Adaptation', 'Based-on', 'Comedy', 'Romance', '*', 'Mystery', 'Thriller', '*', 'Comedy']
显然,元素“*”在列表中分隔组。如何将出现在“*”之间的元素分组?预期结果如下所示:
expected_list = [('Drama', 'Film Noir', 'Mystery', 'Romance'), ('Dance', 'Drama', 'Musical'), ('Crime', 'Drama'), ('Action', 'Drama', 'Period', 'Western'), ('Adaptation', 'Based-on', 'Comedy', 'Romance'), ('Mystery', 'Thriller'), ('Comedy')]
使用^{} 根据条目是否为
*
对条目进行分组,然后使用__ne__
(不相等)方法或等效的lambda
表达式保留那些不是*
的部分:这是一个经典的use case for ^{} :
将您的输入分组为
*
和非*
运行,将*
组和tuple
组放到非*
组相关问题 更多 >
编程相关推荐