![](/img/trans.png)
[英]How do I check one index of list_a against every element in list_b, and repeat this process for all elements in list_a?
[英]is there optimized way to calculate how many possible turn when moving random 2 elements from list_a to list_b?
我有以下 2 个列表
a = [1,2,3,4,5]
b = []
我的问题是:我想涵盖所有可能发生的运行,并且每次运行不应相互重叠。
那么有没有什么优化的方法可以找到它?
感谢您的帮助。
谢谢,戴尔
我尝试了以下解决方案:
import itertools
import random
class Test():
a_list=[-4,-7,6,103]
b_list=[]
def combine(self,arr):
combination = [i for i in itertools.combinations(arr, 2)]
return combination
def move(self, a, b):
for ii in self.combine(a):
print 'combination: {}'.format(ii)
print 'old_a %s' %a
new_b = list(set(b).union(ii))
new_a = [x for x in a if x not in ii]
print '1. new_a: %s new_b: %s' %(new_a, new_b)
# self.list_total.append(total)
if len(new_a) > 0:
new_a.append(min(new_b))
new_b.remove(min(new_b))
print '2. new_a: %s new_b: %s' %(new_a, new_b)
if len(new_a) > 0:
self.move(new_a, new_b)
else:
print ('------- END -------' )
def main(self):
self.move(self.a_list, self.b_list)
if __name__ == '__main__':
Test().main()
但我的解决方案似乎不正确,仍然错过了一些情况。 非常感谢您的建议!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.