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

2021-05-16 08:50:27 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个长度不确定的列表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

正如我所提到的,在每种情况下,列表的长度都是可变的,比如可以是32个,实际上没有上限。那么,如何创建一个实例(类、函数或任何标准方法),在这种情况下,这个逻辑可以应用于任何列表或长度n?在

一些指针会很好,我还没有进入OOP,这是我开始的提示吗?在

2条回答
网友
1楼 ·

删除列表开头低于p的所有项。在

import itertools

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

它提供:

^{pr2}$
网友
2楼 ·

既然您对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]

如果for循环现在对您来说太超前了,您可以改为执行以下操作:

^{pr2}$

第一种方法被认为是更多的pythonic。在

相关问题