Python中带条件的For循环

2024-03-29 09:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我被这个问题困住了。如何创建一个程序,将1随机添加到[0,0,0,0,0,0]列表中。我想一直保持下去,直到列表中的所有数字都至少为>;0。你知道吗

我的代码有三个问题,我不知道是什么。我的代码和列表投票=[0,0,0,0,0,0]:

  1. 第7次后停止打印

  2. 有时一个项目的开头超过1个

我希望它从列表中的一个1开始,然后在列表中的一个项目中随机添加1。你知道吗

所以我希望列表中至少有一个大于0。你知道吗

我的密码是

Def get_all_prizes():
       For items in votes:
              Items = random.radiant(0, 5)
              Votes[items] + = 1
               If items == 0:
                    False
               Else:
                    Print(votes)

这就是印刷品

[0, 0, 0, 0, 1, 0]
[0, 0, 1, 0, 1, 0]
[0, 1, 1, 0, 1, 0]
[0, 1, 2, 0, 1, 0]
[0, 1, 3, 0, 1, 0]
[0, 1, 3, 1, 1, 0]

它只做了6次,有时它是这样开始的。我想让它从列表中只有一个数字开始,就像以前打印的一样

[0, 1, 2, 0, 1, 0]
[0, 1, 3, 0, 1, 0]
[0, 1, 3, 1, 1, 0]

Tags: 项目代码gt程序密码列表forget
1条回答
网友
1楼 · 发布于 2024-03-29 09:35:29

如果我正确理解您的问题,您可以使用^{}检查每个元素是否都大于0,并继续使用^{}循环,直到此条件完全满足:

import random
n = 6
votes = [0] * n

while not all(votes):
    i = random.randrange(0, n)
    votes[i] += 1
    print(votes)

#   [0, 0, 0, 0, 1, 0]
#   [1, 0, 0, 0, 1, 0]
#   [1, 0, 1, 0, 1, 0]
#   [1, 0, 2, 0, 1, 0]
#   [1, 0, 2, 0, 1, 1]
#   [1, 0, 2, 1, 1, 1]
#   [1, 0, 2, 2, 1, 1]
#   [1, 0, 3, 2, 1, 1]
#   [2, 0, 3, 2, 1, 1]
#   [2, 0, 3, 3, 1, 1]
#   [2, 0, 3, 4, 1, 1]
#   [2, 0, 3, 4, 2, 1]
#   [2, 0, 3, 5, 2, 1]
#   [2, 0, 3, 6, 2, 1]
#   [3, 0, 3, 6, 2, 1]
#   [4, 0, 3, 6, 2, 1]
#   [4, 0, 3, 6, 3, 1]
#   [4, 0, 3, 6, 4, 1]
#   [4, 1, 3, 6, 4, 1]

相关问题 更多 >