我有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
答案 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'