如果我有一个列表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”不是索引值。还有其他有效的方法来编写相同的代码吗?
答案 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))