[英]how do i do round-robin in python 3
我必須輪換清單。 我得到一個排序的列表,並且我必須在此排序列表的排列中獲得最少的對和最大的樹數,以作答。 它必須具有從最低到最高排序的不同數字。 例如:
MyList=[1, 1, 1, 2, 2, 2, 3, 3, 3, 3]
輸出必須是:
1 2 3
1 2 3
1 3
2 3
和為:
MyList=[1, 1, 1, 1, 1, 2, 3, 4, 5, 6]
輸出必須是:
1 2
1 3
1 4
1 5
1 6
我看到我可以用一種叫做循環的方法來做到這一點,但是我不知道怎么做。 謝謝您的幫助!
from itertools import cycle
A = [[1,2,3],[4,5,6],[7]]
B = [[8],[9,10,11],[12,13]]
for p in A:
max1 = len(p) if max1 <len(p) else max1
for p in B:
max1 = len(p) if max1 <len(p) else max1
i = len(A)
j = 0
C = []
list_num = cycle(k for k in range(i))
for x in list_num:
j += 1
if j == i*3:
break
if A[x]:
C.append(A[x].pop(0))
if B[x]:
C.append(B[x].pop(0))
輸出:
[1, 8, 4, 9, 7, 12, 2, 5, 10, 13, 3, 6, 11]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.