擅长:python、mysql、java
<p>这里有一个解决方案,使用一个有副作用的函数。我更喜欢使用纯函数,但这应该符合您的目的,而且可能更简单</p>
<pre><code>import random
names = ["raja","laxman","jay","ajay","lopo", "tost","lola","manish", "Vishal"]
excluding = []
def get_rand():
name = names[random.randint(0, len(names)-1)]
if len(excluding) == len(names):
print("No more names to pick from")
exit()
if name in excluding:
return get_rand()
excluding.append(name)
return name
for i in range(10):
print(get_rand())
</code></pre>
<p>另一种方法是在删除已从列表中选择的名称的情况下对名称列表进行变异,但这只有在列表未在其他地方使用时才可能</p>
<p>随机输入</p>
<pre><code>names = ["raja","laxman","jay","ajay","lopo", "tost","lola","manish", "Vishal"]
def get_rand():
if not len(names):
print("No more names to pick from")
exit()
idx = random.randint(0, len(names)-1)
name = names[idx]
del names[idx]
return name
for i in range(10):
print(get_rand())
</code></pre>