为什么我只能在over列表中查看最终over列表?



有一个程序来创建一个板球比赛记分卡,其中只有两个比赛。所以我想在一个列表中展示每个单次得分,在另一个列表中展示总两次得分。为例:[[1 0 0、4、2、6],[2 4 0 1 0 6]]。但是我的代码执行的是[[2,4,0,1,0,6],[]]。也就是说少了一个。如果我注释第9行(new_over = list()),并将第9行复制到第10行(over .append(new_over))之后,我将得到准确或正确的输出。请解决我的疑问,我不应该在第9行写(new_over = list())来得到想要的输出。

import random
runs = random.choices([0, 1, 2, 3, 4, 5, 6], 
weights = [30, 30, 20, 5, 10, 0, 5], 
k = 12)
overs = list()
new_over = list()
for ball, run in enumerate(runs):
new_over.append(run)
print(new_over)
if (ball + 1) % 6 == 0:
new_over = list()
overs.append(new_over)
print(overs)

你颠倒了两行代码:)

import random
runs = random.choices([0, 1, 2, 3, 4, 5, 6], 
weights = [30, 30, 20, 5, 10, 0, 5], 
k = 12)
overs = list()
new_over = list()
for ball, run in enumerate(runs):
new_over.append(run)
if (ball + 1) % 6 == 0:
overs.append(new_over)  # here
new_over = list()  # and here 
print(overs)

您在添加列表之前正在删除该列表。

希望它能澄清一切。

祝你愉快,

加布里埃尔

最新更新