Hen*_*ton 2 python list-comprehension generator
使用列表推导,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)
print out_main
print in_main
>>> [5, 2, 7]
>>> [4, 1]
Run Code Online (Sandbox Code Playgroud)
试图保持简单,但作为使用示例,main_list可以是包含字典键的part_list的字典中的值.需要同时生成两个列表.心连心.
只要您没有重复数据,订单无关紧要.
main_set = set([6, 3, 4, 0, 9, 1])
part_set = set([4, 5, 1, 2, 7])
out_main = part_set - main_set
in_main = part_set & main_set
Run Code Online (Sandbox Code Playgroud)
任务完成.
如果订单(在part_list中)很重要:
out_main = [p for p in part_list if p not in main_list]
in_main = [p for p in part_list if p in main_list]
Run Code Online (Sandbox Code Playgroud)
除此以外:
out_main = list(set(part_list) - set(main_list))
in_main = list(set(part_list) & set(main_list))
Run Code Online (Sandbox Code Playgroud)