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