我目前正在尝试在添加下一个项目之前将一个列表中的随机项目(使用randint)附加到另一个列表。好吧,这可能是一种怪异的表达方式,但是我不确定如何用其他方式来描述它-我很抱歉。因此,这是我当前有问题的代码以及所需的输出:
代码:
import random
lineIDPart3 = []
lineIDSpace6 = []
lineIDSpace6Poss = ["4", "0", "C", "8"]
lineIDSpace6Num = random.randint(0, 3)
while len(lineIDPart3) < 34:
lineIDPart3.append(lineIDSpace6Poss[lineIDSpace6Num])
if lineIDSpace6Num < 4:
lineIDSpace6Num += 1
else:
lineIDSpace6Num = 0
print(lineIDPart3)
我想要的输出示例:
["C", "8", "4", "0", "C", "8"...]
对此我感到很困惑,因此我们将不胜感激!
答案 0 :(得分:2)
这很简单。因为您的if statement
是<4
,然后它是+ = 1,所以这意味着它将循环从3增长到4。只需更改
if lineIDSpace6Num < 4:
到
if lineIDSpace6Num < 3:
您的问题将得到解决。
答案 1 :(得分:2)
在这种情况下,您将太远了一个整数:
“ if lineIDSpace6Num < 4:
”
(在这种情况下,如果lineIDSpace6Num等于3,则允许它增加1)
尝试将数字从 4更改为3 (或者最好更改为(len(lineIDSpace6Poss)-1)
,以防万一您决定在生成列表中需要更多字符);因为您的数组只有4个元素,这意味着最大值必须为3,否则您将有一个index out of range
异常。
答案 2 :(得分:0)
size=34
listy=["4", "0", "C", "8"]
random.shuffle(listy)
newlist=(listy*(int(size/len(listy))+len(listy)))[:size]
这是一种更简单的方法