我有两张单子 列表1=['A'、'B'、'C'] 列表2=['1','2','3'] 我需要一个长列表(由这两个列表组合),长度为'n',没有
我希望组合列表中的元素按任何顺序排列,但彼此之间没有重复项。换句话说,, 就像这个例子,, [‘A1’、‘B2’、‘C3’、‘A2’、‘B3’、‘C1’、‘A3’、‘B1’、‘C2’、‘A1’、‘B2’、‘C3’…]
谁能帮帮我吗。我正在寻找一个答案,因为2天
编辑:
我试过itertools方法产品
newlist=[n[0]+n[1]表示列表中的n(itertools.product(list1,list2))]
#这给出了我需要的元素的精确排列,但不是我希望的顺序
新列表=['a1'、'a2'、'a3'、'b1'、'b2'、'b3'、'c1'、'c2'、'c3']
#然后,我使用嵌套循环
#交换新列表中的连续元素对 对于枚举(新列表)中的ind,n: 当n==newlist[ind-1]时: 对于枚举(新列表)中的ind,n: 当n==newlist[ind-1]时: 新列表[ind-1],新列表[ind-2]=新列表[ind-2],新列表[ind-1]
#交换newlist中连续的list1元素 对于枚举(新列表)中的ind,n: 而n[0]==newlist[ind-1][0]: 对于枚举(新列表)中的ind,n: 而n[0]==newlist[ind-1][0]: 新列表[ind-1],新列表[ind-2]=新列表[ind-2],新列表[ind-1]
#交换newlist中连续的list2元素 对于枚举(新列表)中的ind,n: 而n[1]==newlist[ind-1][1]: 对于枚举(新列表)中的ind,n: 而n[1]==newlist[ind-1][1]: 新列表[ind-1],新列表[ind-2]=新列表[ind-2],新列表[ind-1]
显然,它可以很好地处理包含3个以上元素的列表。但不适用于长度分别为3和2的列表。
希望这有帮助
我已经找到了你想要的解决办法。jrook指出的一条评论显示了与此类似的讨论,但在他们的案例中,它没有检查以确保它遵循了您想要的所有参数。所以我继续写了一段代码
变量final是一个列表,它将确保遵循您想要的所有规则,即:没有重复项,没有相同的连续字母或数字。希望这就是你想要的。我编辑了这个,所以现在你可以让第二个或第一个列表的长度更长,它会工作得很好
相关问题 更多 >
编程相关推荐