Python 设置if-elif-else语句的变量数量/深度

Python 设置if-elif-else语句的变量数量/深度,python,python-2.7,if-statement,Python,Python 2.7,If Statement,假设我有一个长度不确定的列表l=[1,2,3,…n],我想根据列表内容和列表长度执行一些if-elif语句。因此,如果长度为3,我们将: 已更新 p = 2.1 if p < l[0]: #quit elif p >= l[len(n)]: #do something and quit elif p >= l[2] and p<= l[3]: #remove l[2], l[1] and l[0] from list elif p >= l[1]

假设我有一个长度不确定的列表
l=[1,2,3,…n]
,我想根据列表内容和列表长度执行一些if-elif语句。因此,如果长度为3,我们将:

已更新

p = 2.1

if p < l[0]:
   #quit
elif p >= l[len(n)]:
   #do something and quit
elif p >= l[2] and p<= l[3]:
   #remove l[2], l[1] and l[0] from list
elif p >= l[1] and p<= l[2]:
   #remove l[1] and l[0] 
elif p >= l[0] and p <= l[1]:
   #remove l[0] from list
p=2.1
如果p=l[len(n)]:
#做点什么然后退出

如果p>=l[2]和p=l[1]以及p=l[0]和p删除列表开头低于
p
的所有项目

import itertools

p = 2.1
l = [0, 1, 2, 3, 4, 5]
print list(itertools.dropwhile(lambda x: x < p, l))

由于您似乎对python不熟悉,我建议您使用简单的语法:

l = [1,2,3,4] #must be ordered - if not sorted(l)
p = 2.1

if p < l[0]:
    #quit
l = [elem for elem in l if p < elem]
print l
#prints [3, 4]
l=[1,2,3,4]#必须排序-如果未排序(l)
p=2.1
如果p
如果for循环现在对您来说过于超前,您可以改为:

l = [1,2,3,4] #must be ordered - if not sorted(l)
p = 2.1

if p < l[0]:
    #quit
    pass
for i in reversed(xrange(len(l))):
    if p > l[i]:
        break

l = l[i+1:]
print l
l=[1,2,3,4]#必须排序-如果未排序(l)
p=2.1
如果pl[i]:
打破
l=l[i+1:]
打印l

第一种方法考虑得更多。

所以你只想浏览一下列表,看看你的价值在哪里?任何提示都可以开始OOP。Python是OOP的王者。您是否希望elif语句比前一个语句有一个特定的增量?是否有无限多不相关的
#Do something
操作?如果没有,我怀疑您可以使用迭代或递归解决方案来完成您的工作。请描述选择哪些/什么函数必须应用于list@ajsp如果我的回答对你有帮助,请接受,这样其他人也可以从你的问题中学习。。。
l = [1,2,3,4] #must be ordered - if not sorted(l)
p = 2.1

if p < l[0]:
    #quit
    pass
for i in reversed(xrange(len(l))):
    if p > l[i]:
        break

l = l[i+1:]
print l