-1

在我的代码中,我试图将嵌套列表中的所有第二行除以变量。这很好用,但它要求列表中每个项目的变量而不是一次。

这是我的代码:

nlist = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]

def divide():
    x = int(input('what is your divider?:'))
    return x

nlist[1] = [num / divide() for num in nlist[1]]
print(nlist)

输出:

what is your divider?:5
what is your divider?:5
what is your divider?:5
what is your divider?:5
[[1, 2, 3, 4], [1.0, 1.2, 1.4, 1.6], [9, 10, 11, 12]]

我想要的输出是:

what is your divider?:5
[[1, 2, 3, 4], [1.0, 1.2, 1.4, 1.6], [9, 10, 11, 12]]
4

1 回答 1

3
nlist[1] = [num / divide() for num in nlist[1]]

divide()每次都被调用。利用

divide_value = divide()
nlist[1] = [num / divide_value for num in nlist[1]]

只调用一次并存储它。

于 2014-10-27T17:04:00.917 回答