擅长:python、mysql、java
<p>你知道有多少个名字是可能的——只有<code>len(first) * len(last)</code>。您可以在此范围内生成一个随机样本,然后做一点数学运算,将这些组合与生成的数字相匹配。对于范围内的给定整数,映射为:</p>
<pre><code>f = first_name[s // len(last_name)]
l = last_name[s % len(last_name)]
</code></pre>
<p>在中,您可以使用<code>random.sample</code>,然后构建名称:</p>
<pre><code>import random
first_name = ['tony', 'adam', 'agustin', 'branden','stan']
last_name = ['smith', 'stark', 'wlliams']
total = len(first_name) * len(last_name)
sam = random.sample(range(total), 10)
[f'{first_name[s // len(last_name)]} {last_name[s % len(last_name)]}' for s in sam]
</code></pre>
<p><strong>结果:</strong></p>
<pre><code>['adam stark',
'branden smith',
'agustin smith',
'stan wlliams',
'tony smith',
'stan stark',
'branden wlliams',
'agustin stark',
'stan smith',
'tony wlliams']
</code></pre>
<p><code>random.sample()</code>如果您试图获取的数量超过您想要的总数,则会抛出一个错误,因为您需要重复</p>