获取基于特定项目的先前值

时间:2015-04-30 11:42:35

标签: python python-2.7

我正在尝试一个脚本,我们使用列表项,然后我将获得前一项。

lst = [1, 3, 4, 6, 8, 10]

next_item = next((x for x in lst if x > 6), None)
print next_item #8

此代码适用于6之后的项目。但是我需要6之前的项目。

我正在寻找一个prev方法的文档,但我找不到任何相关的东西。 有什么想法吗?

3 个答案:

答案 0 :(得分:5)

假设"之前"你的意思是"在lst"之前,没有必要使用这种复杂的方式。此

lst[lst.index(6) - 1]

将给出

4

虽然这个

lst[lst.index(6) + 1]

将给出

8

当然你应该检查索引超出范围的错误。

答案 1 :(得分:3)

您可以使用反向条件循环反转列表:

>>> next((i for i in lst[::-1] if i<6),None)
4

答案 2 :(得分:0)

如果您要查找lst中第一个大于6的数字,这是一种方法:

lst = [1, 3, 4, 6, 8, 10]
lst2 =[]
for num in lst:
    if num > 6:
        lst2.append(num)
        lst2.sort()
print lst2[0]

输出为8