使用 for if break 语句在列表中追加值
Using a for if break statement to append values in a list
我正在使用循环,我遇到了一个问题,所以我有一个简单的 for loop
,它在 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 loop
非常简单:
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 会中断循环,所以我希望你能指出正确的方向。提前致谢!
使用两个变量来跟踪随机数生成的 0 和 1 的数量 getter。
然后,在 for 循环中使用 if 语句逻辑在适当的地方添加或中断
你可以数一数要打破的数字。
value = []
count = [0, 0]
while True:
value.append(np.random.randint(0, 2))
count[value[-1]] += 1
if count[1] == 5: # or something like that
break
编辑:如果您需要连续的值,您可以在不需要的值出现时相应地重置计数。
count[value[-1]] += 1
count[1 - value[-1]] = 0
在这种情况下,当您不确定需要多少次迭代时,使用 while
循环是事实上的标准
你可以有两个变量作为最大允许数量,对于这个例子,我使用 numOnes as 5
和 numbZeros 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 or 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
我正在使用循环,我遇到了一个问题,所以我有一个简单的 for loop
,它在 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 loop
非常简单:
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 会中断循环,所以我希望你能指出正确的方向。提前致谢!
使用两个变量来跟踪随机数生成的 0 和 1 的数量 getter。
然后,在 for 循环中使用 if 语句逻辑在适当的地方添加或中断
你可以数一数要打破的数字。
value = []
count = [0, 0]
while True:
value.append(np.random.randint(0, 2))
count[value[-1]] += 1
if count[1] == 5: # or something like that
break
编辑:如果您需要连续的值,您可以在不需要的值出现时相应地重置计数。
count[value[-1]] += 1
count[1 - value[-1]] = 0
在这种情况下,当您不确定需要多少次迭代时,使用 while
循环是事实上的标准
你可以有两个变量作为最大允许数量,对于这个例子,我使用 numOnes as 5
和 numbZeros 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 or 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