#DeckOfCards
deck = []
filler= [0, 0, 0, 0]
def deck_generator():
counter = 0
for i in range (52):
counter += 1
deck.append(filler)
return deck
def deck_values(i):
k = 4
temp = (i + 1) % k
return temp
deck = deck_generator()
for i in range(52):
deck[i][0] = deck_values(i)
此代码的目标是将内部列表的第一个索引的0-3值分配给外部列表中的所有值。 [[0,0,0,0],[1,0,0,0],[2,0,0,0],[3,0,0,0],[0,0,0,0] ] 等等。由于某种原因,任务不起作用。提前致谢。
答案 0 :(得分:1)
附加列表的副本而不是列表本身。
deck.append(filler[:])
答案 1 :(得分:0)
试试这个
deck = []
for i in range(52):
deck.append([i % 4, 0, 0, 0])
print (deck)
运行此代码打印(为便于查看而编辑):
[[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0],
[0, 0, 0, 0], [1, 0, 0, 0], [2, 0, 0, 0], [3, 0, 0, 0]]
答案 2 :(得分:0)
你确定你想要[[0,0,0,0],[1,0,0,0],[2,0,0,0],[3,0,0,0] ,[0,0,0,0]]?
首先,您应该使用过滤器的副本,然后您可以获得如下列表:
[[1,0,0,0],[2,0,0,0],[3,0,0,0],[0,0,0,0],......]
但是如果你想得到结果[[0,0,0,0],[1,0,0,0],[2,0,0,0],[3,0,0,0] ],...]
你的代码应该是这样的:
deck = []
filler= [0, 0, 0, 0]
def deck_generator():
counter = 0
for i in range (52):
counter += 1
deck.append(filler[:])
return deck
def deck_values(i):
k = 4
temp = i % k #not temp = (i+1) % k
return temp
deck = deck_generator()
for i in range(52):
deck[i][0] = deck_values(i)
print(deck)
答案 3 :(得分:0)
我认为它的问题是temp =(i + 1)%k,因为我们不需要添加1到1.它应该从0开始。除此之外,你需要正确追加以便它起作用。代码如下所示:
#DeckOfCards
deck = []
filler= [0, 0, 0, 0]
def deck_generator():
counter = 0
for i in range (52):
counter += 1
deck.append(filler[:])
return deck
def deck_values(i):
k = 4
temp = (i) % k
return temp
deck = deck_generator()
for i in range(52):
deck[i][0] = deck_values(i)