是不是双环?

2024-04-25 11:44:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题:

# Neither this

trial1 = [[x for x in 10000 // 5**i] for i in range(1, 10)]

# nor this

trial2 = [x for i in range(1, 10) for x in 10000 // 5**i]

# work.

它们都返回:“int”对象是不可iterable的,这让我有些困惑。因为i是一个数组(1,2,3,...,9),所以必须是10000 // 5**i公式。那么i不能迭代的整数是什么?。我希望trial是一个包含所有这些值的列表。你知道吗

这有什么不同?你知道吗

trial = []
for i in range(1, k):
    trial.append(10000 // 5**i)

一个人如何着手制定清单理解陈述?你知道吗


Tags: 对象inforrange数组thisiterable公式
3条回答

工作for循环的理解等价物是:

[10000 // 5**i for i in range(1, 10)]

这个例子中没有双循环,所以理解中也不应该有双循环。你知道吗

关于第二个问题;i不是一个值为(0, 1, ... , 9)的列表,而是该列表中的一个整数。你知道吗

相当于

trial = []
for i in range(1, k):
    trial.append(n // 5**i)

只是

trial = [10000 // 5**i for i in range(1, k)]

因为你只是在计算10000 // 5**i永远irange(1, k)

for x in 10000 // 34**i或者类似的意思是迭代一个数字,这是没有意义的,会导致一个错误。你知道吗

你似乎想在列表中添加数字,这很简单:

trial = [10000 // 5**i for i in range(1, 5)]

你基本上是说:

  1. 创建列表([...]
  2. 它由值组成,每个值都等于10000//5**i
  3. 其中irange(1, 5)中的每个数字

相关问题 更多 >

    热门问题