1

我目前正在尝试在添加下一个项目之前尝试将一个随机项目(使用 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"...]

我对这个很困惑,所以任何和所有的帮助都值得赞赏!

4

3 回答 3

2

这很简单。因为你的if statementis <4,然后它 +=1,所以这意味着它会在循环中从 3 增长到 4。只是简单地改变

 if lineIDSpace6Num < 4:

 if lineIDSpace6Num < 3:

您的问题将得到解决。

于 2018-07-23T06:28:46.707 回答
2

在这种情况下,你的整数太远了:

" if lineIDSpace6Num < 4:" (在这种情况下,如果 lineIDSpace6Num 等于 3,则允许 lineIDSpace6Num 递增 1)

尝试将数字从4 更改为 3(或者更好的是(len(lineIDSpace6Poss)-1),以防您决定要在生成列表中添加更多字符);因为您的数组只有 4 个元素,这意味着您的最大值必须为 3,否则您将遇到index out of range异常。

于 2018-07-23T06:39:56.080 回答
0
size=34
listy=["4", "0", "C", "8"]
random.shuffle(listy)
newlist=(listy*(int(size/len(listy))+len(listy)))[:size]

是一种更简单的方法

于 2018-07-23T06:31:04.700 回答