擅长:python、mysql、java
<p>您可以排列您的列表,使不应配对的两个名称都在一个一半中,而只洗牌其余的名称:</p>
<pre><code>from random import shuffle
no_pair = ['Amy', 'Sean']
for n in no_pair:
names.remove(n)
shuffle(names)
names = no_pair + names
</code></pre>
<p>然后简单配对,将列表分成两半:</p>
<pre><code>N = len(names)//2
lhs = names[:N]
rhs = names[N:]
#print(*zip(lhs, rhs), sep='\n')
#('Amy', 'Andrew')
#('Sean', 'Jade')
#('Donald', 'Joe')
#('Emily', 'George')
#('Jenny', 'Peter')
#('Julia', 'Patrick')
#('Louise', 'Lydia')
#('Katie', 'Sarah')
</code></pre>