使用列表理解、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
包含字典键。我需要同时生成两个列表。
最佳答案
只要您没有重复数据,顺序就没有关系。
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
工作完成。
关于Python 列表理解使用条件从列表创建不等长列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124903/