一个人应该如何为可变长度的列表编写条件语句?

时间:2018-12-09 08:22:57

标签: python list if-statement nested-lists

如果我有一个列表ls,它在每次调用特定函数时长度有所不同,那么编写if条件的有效方法应该是什么 有写同样的效率吗?

谢谢。

我已经尝试过了:

a = []
if len(ls)==3 :
    if len(ls) ==1 :

        if len(ls[0])==3 :
            b = 0
            a.append (b)
            print("done1")
    if len(ls)==2 :
        if len(ls[0]) ==3 :
            b = 0
            a.append (b)
            print("done1")
        if len(ls[1]) ==3 :
            b = 2
            a.append (b)
            print("done2")
    if len(ls) ==3 :

        if len(ls[0]) ==3 :
            b = 0
            a.append (b)
            print("done1")
        if len(ls[1]) ==3 :
            b = 2
            a.append (b)
            print("done2")
        if len(ls[2])==3:
            b =3
            a.append (b)
            print("done 3")

这些代码行将针对列表ls的不同长度返回列表“ a”。 “ b”只是我添加的一个随机值。 “ b”不是索引值。还有其他有效的方法来编写相同的代码吗?

2 个答案:

答案 0 :(得分:1)

如果是IndexError的原因,则可能应该考虑使用循环:

for l in ls:
    b = len(l)
    a.append(b)
    print("done {}".format(b))
    # Alternatively, print("done %d" % (b,))

答案 1 :(得分:1)

根据您的评论,我认为您需要这样做:

for index, item in enumerate(ls):
    if len(item) == 3: # or len(item) == len(ls) ??
        b = index+1 # Or b = index , as you need 
        a.append(b)
        print("done {}".format(b))