我有以下问题:
# 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)
一个人如何着手制定清单理解陈述?你知道吗
工作
for
循环的理解等价物是:这个例子中没有双循环,所以理解中也不应该有双循环。你知道吗
关于第二个问题;
i
不是一个值为(0, 1, ... , 9)
的列表,而是该列表中的一个整数。你知道吗相当于
只是
因为你只是在计算
10000 // 5**i
永远i
在range(1, k)
for x in 10000 // 34**i
或者类似的意思是迭代一个数字,这是没有意义的,会导致一个错误。你知道吗你似乎想在列表中添加数字,这很简单:
你基本上是说:
[...]
)10000//5**i
i
是range(1, 5)
中的每个数字相关问题 更多 >
编程相关推荐