python中的唯一列表

buc*_*sII 4 python list

我对编码很新.我正在尝试创建2个唯一列表,因此l2在l1的相同索引中永远不会具有相同的值.基本上,if语句可以很好地检查(随机值)是否已经在l2中,但在检查a是否与同一索引的l1值相同时不起作用.然后我将缩放此代码以制作一个包含9个列表的数据列表的数独游戏.

l1 = [1, 2, 3, 4]

l2 = []
i = 0
while len(l2) < 4:
    a = random.randrange(1, 5)

    if a not in l2 or not l1[i]:
        l2.append(a)
        i += 1

print(l1, l2)
Run Code Online (Sandbox Code Playgroud)

And*_*eas 5

欢迎来到StackOverflow!目前你正在做错误的检​​查.if a not in l2 or not l1[i]检查两件事:

  1. l2不包含aOR
  2. l1[i]不是0(因为l1[i]被检查为a boolean,和not 0= 1,这是true)

您必须使用此检查if a not in l2 and a != l1[i],检查:

  1. l2不包含aAND
  2. l1[i] 不等于的价值 a