gpt4 book ai didi

python - 如何使用列表理解使嵌套列表的长度等于列表中数字的值?

转载 作者:行者123 更新时间:2023-12-02 01:26:58 25 4
gpt4 key购买 nike

我对Python真的很陌生,所以如果这是一个简单得可笑的问题,请原谅我。我有一个给定的列表

x = [0,1,2,3,4,5,6,7,8,9]

现在我想使用列表理解来创建一个列表 e,其中包含列表 x 的每个奇数元素的列表。该列表的所有内部元素都应该为 true,并且列表元素的数量由当前 x 的数量给出。所以它应该看起来像这样:

[[], [True, True], [True, True, True, True], ...]

到目前为止我的代码是:

e = [[True for z in x] for z in x if z % 2 != 0]

打印时我得到一个列表,其中嵌套列表的数量等于列表 x 中奇数的数量,但它们都包含 True 十次。我必须做什么才能使内部列表的长度等于奇数的值?

最佳答案

这段代码应该做你想要的:

[[True for _ in range(z)] for z in x if z % 2 != 0]

区别在于内部理解,[True for _ in range(z)]

之前,您对 x 中的每个 z 进行迭代 - 因此,对于每次迭代,z 中的一个整数x。然后,对于每个唯一的 z,您将再次迭代整个 x。由于 x 有 10 个元素,因此需要 10 次迭代。

相反,您想要做的是生成一个长度为 z[True] 数组。 range(z) 为您提供长度为 z 的保证迭代,您可以根据需要生成任意数量的 True

最里面的变量名称,我用 _ 替换,因为它没有被使用。

关于python - 如何使用列表理解使嵌套列表的长度等于列表中数字的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74280475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com