(Python)如何在某一点之后停止向列表添加字符串?

(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

我试着用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, 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