Python 中的 For 循环语法,不使用 range() 或 xrange()

问题描述 投票:0回答:3

我对 python 不太了解,所以如果我的问题是一个非常基本的问题,我很抱歉。

假设我有一个清单

lst = [1,2,3,4,5,6,7,8,9,10]

现在我想知道的是,是否有任何方法可以在 python 中编写以下代码而不使用

range()
xrange()
:

for i in lst:
    for j in lst after element i: '''This is the line i want the syntax for'''
        #Do Something

第二个循环是访问元素

i
之后的元素,即,如果 i = 3,
j
必须从 4 循环到 10,因此打印
i
j
的数字对将是是 (1,2)..(1,10)、(2,3)...(2,10)、(3,4)..(3,10) 等

我不知道要搜索什么或在任何搜索引擎上输入什么查询。
任何帮助将不胜感激。

python syntax
3个回答
8
投票

这就是列表切片的意义所在,您可以从第 i 个元素开始获取列表的一部分

lst[i:]

此外,为了同时拥有索引和值,您需要

enumerate
操作,将列表更改为对列表
(index, value)

因此

for ind, i in enumerate(lst):
    for j in lst[ind+1: ]: 
        #Do Something

7
投票

看起来你可能想使用 enumerate():

for index, item in enumerate(lst):
    for j in lst[index+1:]:
        #Do Something

0
投票

我们不能简单地这样做吗:

for i in range(len(lst)):  
     for j in lst[i+1:]:  
        #Do Something
© www.soinside.com 2019 - 2024. All rights reserved.