(Python)如何在某一点之后停止向列表添加字符串?
我试着用1到6之间的随机数做一个列表,但只到了两个6相邻的点 这就是我试图做的:(Python)如何在某一点之后停止向列表添加字符串?,python,while-loop,Python,While Loop,我试着用1到6之间的随机数做一个列表,但只到了两个6相邻的点 这就是我试图做的: numbers = [] while numbers[-1] != "6" and numbers[-2] != "6": numbers.append(random.randint(1,6)) 但我给了我一个错误: Exception has occurred: IndexError list index out of range File "C:...\sestka.py", line 5, i
numbers = []
while numbers[-1] != "6" and numbers[-2] != "6":
numbers.append(random.randint(1,6))
但我给了我一个错误:
Exception has occurred: IndexError
list index out of range
File "C:...\sestka.py", line 5, in <module>
while numbers[-1] != "6" and numbers[-2] != "6":
发生的
索引器错误
,是因为您最初有一个空列表。使用索引-1
将给出列表中的最后一个元素,但如果列表中没有元素,则会引发索引器
import random
# Initialize numbers to have two values
numbers = [random.randint(1,6), random.randint(1,6)]
# Check the last two values to ensure one is not a 6
while numbers[-2] != 6 or numbers[-1] != 6:
numbers.append(random.randint(1,6))
# The loop will break when the last two elements are 6, resulting in [..., 6, 6]
print(numbers)
第一个示例是正确的,但是如果列表中的项少于两个,则需要添加另一个循环条件:
numbers = []
while len(numbers) < 2 or numbers[-1] + numbers[-2] != 12:
numbers.append(random.randint(1,6))
number=[]
而len(数)<2或数[-1]+数[-2]!=12:
数字.附加(随机.随机数(1,6))
如果两个6相邻,您想阻止吗?不,我想在两个6相邻时停止添加新数字您的RHS条件仍然需要检查两个6是否相等<代码>数字[-1]+数字[-2]==12仍然适用于,比如说,5和7(加起来等于12的任何数字)。在这种情况下,数字由random.randint(1,6)
限定,因此任何数字的最大值都是6。@NChauhan我这样写是因为。。。或者数字[-1]==6和数字[-2]==6感觉很尴尬。如果在随机列表中没有双6怎么办?
numbers = []
while len(numbers) < 2 or numbers[-1] + numbers[-2] != 12:
numbers.append(random.randint(1,6))
import random
random_list = [random.randint(1,6) for x in range(0,100)]
new_list = list()
iterator = 0
for x in range(len(random_list)):
if random_list[iterator] == 6 & random_list[iterator + 1] == 6:
for x in range(iterator+2):
new_list.append(random_list[x])
break
else:
iterator+=1