按顺序返回列表中的每个项目

时间:2018-06-13 00:49:02

标签: python python-3.x python-2.7

list = ['0','1','2','3','4','5','6']

for item in list:
    return item

我的目标:

第一次运行此功能,我想要0
第2次运行此功能,我想要1个 第3次运行此功能,我想要2



第7次运行此功能,我想要6.

print(item)可以做到这一点,但有没有办法用return?

感谢

5 个答案:

答案 0 :(得分:2)

尝试使用next

>>> l = ['0','1','2','3','4','5','6']
>>> iter_ = iter(l)
>>> next(iter_)
'0'
>>> next(iter_)
'1'
>>> next(iter_)
'2'
>>> 

答案 1 :(得分:1)

我认为你正在寻找一种名为pop

的方法

每次运行list.pop(0)时,它会弹出列表中的第一个元素,因此如果多次运行它将逐个返回每个元素

counter = 0
l = ['0','1','2','3','4','5','6']

def returnVal():
  global counter
  global l
  counter = (counter + 1) % len(l)
  return l[counter]

print(returnVal())
print(returnVal())
print(returnVal())
print(returnVal())
print(returnVal())
print(returnVal())
print(returnVal())
print(returnVal())

答案 2 :(得分:0)

您可以使用计数器变量。

public async Task MyTest {

    //Arrange
    //...assume controller and dependencies defined.

    //Act
    IActionResult actionResult = await controller.Get();

    //Assert
    var okResult = actionResult as OkObjectResult;
    Assert.IsNotNull(okResult);

    var newBatch = okResult.Value as List<Batch.Context.Models.Batch>;
    Assert.IsNotNull(newBatch);

    //...other assertions.
}

工作示例:https://repl.it/@LukasBach/VoluminousFrozenHexadecimal

答案 3 :(得分:0)

也许这会对您有所帮助,您可以通过.reset()获取下一个项目并通过Looper(items*)重置为第一个项目。只需使用class Looper(list): _counter = -1 def get_next(self): self._counter += 1 return self[self._counter] def reset_counter(self): self._counter = -1 初始化对象,就像使用列表一样。

Looper

我真的不知道该怎么称呼所以为了时间而选择了(define delete (lambda (a lst) (cond ((null? lst) (lst)) ((eq? (car lst) a) (cdr lst)) (else (cons (car lst) (delete a (cdr lst)))))))

答案 4 :(得分:-1)

在2之后你遗失',这可能适合你:

list = ['0', '1', '2', '3', '4', '5', '6']

def get_list_item(list, index):
    return list[index]

for index in range(0, len(list)):
    print(get_list_item(list, index))