【发布时间】:2012-04-24 21:03:33
【问题描述】:
使用列表解析、itertools 或类似函数,是否可以根据条件从一个列表创建两个不相等的列表?这是一个例子:
main_list = [6, 3, 4, 0, 9, 1]
part_list = [4, 5, 1, 2, 7]
in_main = []
out_main = []
for p in part_list:
if p not in main_list:
out_main.append(p)
else:
in_main.append(p)
>>> out_main
[5, 2, 7]
>>> in_main
[4, 1]
我试图保持简单,但作为一个使用示例,main_list 可以是来自字典的值,其中part_list 包含字典键。我需要同时生成两个列表。
【问题讨论】:
-
我觉得这可以用集合来完成
-
@JakobBowyer main_list 值可以从字典中生成。 sets 是显而易见的解决方案,但要寻找同时生成两个列表的单个列表理解或 itertools 类型的解决方案。
标签: python generator list-comprehension