在迭代可变数量的索引时调用表达式中的索引(Python)
Posted
技术标签:
【中文标题】在迭代可变数量的索引时调用表达式中的索引(Python)【英文标题】:Calling indices in an expression while iterating over a variable number of indices (Python) 【发布时间】:2021-04-27 13:56:17 【问题描述】:我想迭代列表长度给定的可变数量的索引,使用列表中的值作为范围。此外,我想在我的表达式中调用索引。
例如,如果我有一个列表 [2,4,5],我会想要这样的:
import itertools
for i0, i1, i2 in itertools.product(range(2),range(4),range(5)):
otherlist[i0]**i0 + otherlist[i2]**i2
我能得到的最接近的是
for [i for i in range(len(mylist))] in itertools.product(*[range(i) for i in mylist]):
但我不知道如何从这里调用索引。
【问题讨论】:
【参考方案1】:你已经很亲近了。当您使用 for
语句时,我发现最好
保持目标列表简单并访问目标列表的组件
for循环;在这段代码中,product() 生成的元组。
import itertools
mylist = [2,4,5]
otherlist = list(range(5))
for t in itertools.product(*[range(i) for i in mylist]):
print(otherlist[t[0]]**t[0] + otherlist[t[2]]**t[2])
# 2
# 2
# 5
# 28
# 257
# ...
【讨论】:
以上是关于在迭代可变数量的索引时调用表达式中的索引(Python)的主要内容,如果未能解决你的问题,请参考以下文章