擅长:python、mysql、java
<pre><code>from random import choices
def random_string(chars, weights, length):
string = []
for _ in range(length):
string += choices(chars, weights=weights)
return ''.join(string)
chars = list('XTBG')
weights = [0.1, 0.4, 0.2, 0.3]
print(random_string(chars, weights, 4))
# GBTT
</code></pre>
<p>编辑:说明使用不同的重量。。。在</p>
^{pr2}$
<p>一个大字符的存储更有效:</p>
<pre><code># 872 using sys.getsizeof()
chars = ['X'] * 28 + ['T'] * 21 + ['B'] * 23 + ['G'] * 28
# 104 using sys.getsizeof()
weights = [28, 28, 28, 28]
# 80 using sys.getsizeof()
weights = [(28, 28, 28, 28)]
</code></pre>
<p>您可以用这个函数做类似的事情,同时迭代不同的权重、不同的长度和不同的字符。包含权重的元组列表比字符列表使用的内存少十倍。在</p>