我正在尝试一个脚本,我们使用列表项,然后我将获得前一项。
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方法的文档,但我找不到任何相关的东西。 有什么想法吗?
答案 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