Python:如何使用不从0开始的嵌套forloops索引?

2024-04-25 00:43:49 发布

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

因此,我发现python的一个问题是,使用它们自己的索引创建嵌套循环不是很方便。在

如何编写与此Java代码等效的Python代码:

for(int i = 0; i < array.length-2; i++){
    for(int j = i+1; j < array.length-1; j++){ 
       for(int k = j+1; k < array.length; k++){

请注意我是如何为每个嵌套循环引用前导函数的计数器值的。我尝试使用:

for idx, val in enumerate(nums[:-2]):

但是idx似乎总是从0开始,而不是从前一个索引值开始。除了保持独立的计数器变量之外,还有更好的解决方案吗?在


Tags: 函数代码infor计数器valjavaarray
3条回答

使用rangexrange来实现这一点非常简单。下面是你的方法。在

Java版本:

for(int i = 0; i < array.length-2; i++) {
    for(int j = i+1; j < array.length-1; j++) { 
        for(int k = j+1; k < array.length; k++) {

Python版本:

^{pr2}$

我希望这有帮助!在

来自[Python 3]: enumerate(iterable, start=0)强调是我的):

The __next__() method of the iterator returned by enumerate() returns a tuple containing a count (from start which defaults to 0) and the values obtained from iterating over iterable.

示例:

num = [0, 2, 4, 6, 8]
start = 2
for idx, val in enumerate(num[start:], start=start):
    print("Index: {}, Element: {}".format(idx, val))

输出

Index: 2, Element: 4
Index: 3, Element: 6
Index: 4, Element: 8

很简单。在

for i in range(0,len(array)-2):
    for j in range(i+1,len(array)-1):
        for k in range(j+1,len(array)):
            print k
        print j
    print i

相关问题 更多 >