<p>要使用布尔值(False)创建数组并随机更改其中一个值(True),请尝试:</p>
<p><strong>代码:</strong></p>
<pre><code>import random
my_list = [False]*5
print(my_list)
my_list[random.randint(0,len(my_list)-1)] = True
print(my_list)
</code></pre>
<p><strong>输入</strong></p>
<pre><code>[False, False, False, False, False]
</code></pre>
<p><strong>输出</strong></p>
<pre><code>[False, True, False, False, False]
</code></pre>
<p><strong>解释</strong></p>
<ol>
<li>使用<code>random</code>模块的<code>randint()</code>函数从列表中随机选择一个介于0和<code>length-1</code>之间的数字</li>
<li>使用此数字作为索引,用新的布尔值替换列表中的随机元素</li>
</ol>
<h2>更新</h2>
<p>您的代码似乎保证了python <code>dict</code>,因此请尝试将上述逻辑修改为:</p>
<p><strong>代码</strong>:</p>
<pre class="lang-py prettyprint-override"><code>import random
my_dict = {'Gentleman': False, 'Daughter': False, 'Madam': False}
print(my_dict)
my_dict[random.choice(list(my_dict.keys()))] = True
print(my_dict)
if my_dict['Madam'] == True:
print("Hello Madam")
my_dict['Madam'] = False
my_dict['Daughter'] = True
print(my_dict)
</code></pre>
<p><strong>输入</strong>:</p>
<pre><code>{'Gentleman': False, 'Daughter': False, 'Madam': False}
</code></pre>
<p><strong>输出</strong>:</p>
<pre><code># initial values
{'Gentleman': False, 'Daughter': False, 'Madam': False}
# after random value is set to True
{'Gentleman': False, 'Daughter': False, 'Madam': True}
#inside the if condition
Hello Madam
{'Gentleman': False, 'Daughter': True, 'Madam': False}
</code></pre>
<p><strong>解释</strong></p>
<ol>
<li>将元素初始化为带有布尔值的<code>dict</code>,而不是列表</li>
<li>使用<code>random</code>模块的<code>random.choice()</code>函数从<code>dict</code>中随机选择一个a键</li>
<li>使用此键将<code>dict</code>中的随机布尔值替换为新的布尔值</li>
</ol>