Skip to main content
 首页 » 编程设计

python之zip 基于 python 中的真/假元组

2025年05月04日13yyy_WW

我想要一个由 ziped 列表组成的变量,但只有那些被选中的列表。也就是说,

selected = (True, True, False) 
mylist1 = [1,2,4] 
mylist2 = [4,5,8] 
mylist3 = [3,2,7] 

所以,如果 selected 像上面那样,我想要的是获取 mylist = zip(mylist1, mylist2)。也就是说,我只想zip 那些标记为True 的列表。目前我有一堆 if-else,它看起来很难看。稍后我需要对三个以上的列表做同样的事情,我觉得必须有一个更通用的解决方案。有吗?

请您参考如下方法:

我喜欢代表你 itertools.compress()

lists = [mylist1, mylist2, mylist3] 
result = zip(*itertools.compress(lists, selected)) 

compress make an iterator that filters elements from data returning only those that have a corresponding element in selectors that evaluates to True. Stops when either the data or selectors iterables has been exhausted.