如何在python中获取组件列表中不包含的元素?

时间:2014-11-15 14:44:58

标签: python python-2.7 itertools

我有3个相当大的块的发电机。我正在创建2个元素的组合,但是在代码的某些部分我需要第三个部分(未包含在组合中的部分)。我该怎么办?我不需要最简单或最漂亮的解决方案,我需要尽可能快的解决方案。

示例:

a = ['a','b','c']
gen = chunks(a, 2) # this is not important
for x in combinations(gen, 2):
    # let's say we have x = ['a','b'] and I want to get 'c'
    # I know it is possible to put all generator elements in list and get 'c' 
    # with for loop or set, but I don't if this is the fastest way to get it

1 个答案:

答案 0 :(得分:0)

作为一种有效的方式,我建议定义一个函数,你可以使用它多时间,并与set有所不同,因为它的 pythonic 快速方式:

>>> def diff(test_array=[],main_array=['a','b','c']):
...  return set(main_array).difference(set(test_array)).pop()
... 
>>> diff(['a','b'])
'c'