<p>您可以使用嵌套列表理解:</p>
<pre><code>>>> import pprint
>>> import random
>>> num = [["ENST", "10", "5"], ["ENGT", "8", "2"], ["ENHT", "5", "1"]]
>>> a = {"ENST" : ['acac', 'tgtgtgt', 'hahah'], "ENHT": ['aaaa', 'tttt', 'gig',
... 'cccc'], 'ENGT' : ['ddd', 'eeee', 'ffff', 'hhhh', 'pppp']}
>>> res = [[[k, random.choice(a[k])] for _ in range(int(count))] for k, count, _ in num]
>>> pprint.pprint(res)
[[['ENST', 'acac'],
['ENST', 'tgtgtgt'],
['ENST', 'hahah'],
['ENST', 'hahah'],
['ENST', 'tgtgtgt'],
['ENST', 'tgtgtgt'],
['ENST', 'hahah'],
['ENST', 'acac'],
['ENST', 'acac'],
['ENST', 'tgtgtgt']],
[['ENGT', 'pppp'],
['ENGT', 'ffff'],
['ENGT', 'eeee'],
['ENGT', 'hhhh'],
['ENGT', 'pppp'],
['ENGT', 'eeee'],
['ENGT', 'pppp'],
['ENGT', 'pppp']],
[['ENHT', 'cccc'],
['ENHT', 'aaaa'],
['ENHT', 'gig'],
['ENHT', 'tttt'],
['ENHT', 'cccc']]]
</code></pre>
<p>在上面<code>for k, count, _ in num</code>将迭代<code>num</code>中的元素,并将它们解压到相应的变量中。请注意,我们只需要名称和计数,因此一次性变量的名称为<code>_</code>:</p>
<pre><code>>>> [(k, count) for k, count, _ in num]
[('ENST', '10'), ('ENGT', '8'), ('ENHT', '5')]
</code></pre>
<p>对于<code>num</code>中的每个元素,通过使用<a href="https://docs.python.org/3/library/random.html#random.choice" rel="nofollow noreferrer">^{<cd7>}</a>从<code>a</code>中的相应列表中选择<code>count</code>元素来构造一个列表:</p>
<pre><code>>>> k = 'ENST'
>>> count = '10'
>>> [[k, random.choice(a[k])] for _ in range(int(count))]
[['ENST', 'tgtgtgt'], ['ENST', 'hahah'], ['ENST', 'acac'], ['ENST', 'hahah'], ['ENST', 'tgtgtgt'], ['ENST', 'hahah'], ['ENST', 'hahah'], ['ENST', 'hahah'], ['ENST', 'acac'], ['ENST', 'acac']]
</code></pre>