python - 使用 for if break 语句在列表中追加值

标签 python list for-loop if-statement break

我正在使用循环,我有一个问题,所以我有一个简单的 for 循环,它在 0 和 1 之间附加随机值,基本上我需要的是不断添加值直到某个特定值0 或 1 出现的个数,例如:

iteration 1 = [0]
iteration 2 = [0,1]
...
iteration 6 = [0,1,1,1,1,1] #Here appear five 1's so I break the loop (it can be another number not necessarily 5 ones or 5 zeros)

for 循环 非常简单:

import numpy as np

value = []
for i in range(5):
    value.append(np.random.randint(0, 2))
    print(value)

下面是我尝试使用 if-break 语句打破循环

value = []
for i in range(5):
    if value == value:
        value.append(np.random.randint(0, 2))
    else
        break

    print(value) 

我最大的问题是我不知道如何指定条件,如果出现特定数量的 0 或 1 会中断循环,所以我希望你能给我指明正确的方向。提前致谢!

最佳答案

在这种情况下,当您不知道究竟需要多少次迭代时,使用 while 循环是事实上的标准 你可以有两个变量作为最大允许数字,对于这个例子,我使用 numOnes as 5numbZeros as 3,使用 While True 循环并在每次迭代时检查条件,如果条件不满足则中断。

import numpy as np
numOnes = 5
numZeros = 3
value = []
while True:
    value.append(np.random.randint(0, 2))
    print(value)
    if value.count(0) >= numZeros or value.count(1)>=numOnes:
        break

由于您通常会询问有关 break 语句的问题,所以我使用了 if 条件,否则您可以只使用 while 循环本身作为条件,例如 while value.count(0) >= numZeros 或value.count(1)>=numOnes:

此外,如果您使用 for 循环是因为您只需要指定的迭代次数,那么您的循环就没问题,您不需要使用 while 循环,只需在循环的退出点添加 if 条件:

import numpy as np
numOnes = 5
numZeros = 3
value = []
for i in range(5):
    value.append(np.random.randint(0, 2))
    print(value)
    if value.count(0) >= numZeros or value.count(1)>=numOnes:
        break

关于python - 使用 for if break 语句在列表中追加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67864897/

相关文章:

loops - 一个与嵌套循环相关的谜题

c - 如何使用for循环更改c中数组的每个第二个元素?

python - 屈服然后返回还是直接返回?

python - 计算我的 for 循环,并希望使用某些函数在没有 for 循环的情况下进行计算

python - 生成所有长度为 X 且以 '0' 结尾且没有相邻的 '1' 的字符串

c# - 不同的字符列表 <string>

python - 如何在 python 中循环数据框、创建新列并向其附加值

python - Flask:在模板中放置静态 javascript 文件的位置

python - 如何让连接 4 件到底部?

list - Julia 等价于 python 列表乘法