首页 > 解决方案 > 根据列表中变量的长度查找列表中的索引项

问题描述

我有两个清单:

list_one = ['I', 'walk','on','the','street','','','','']
list_two = ['','','','','','with','my','pajamas','on']

对于这两个列表,我的目标是不同的。对于list_one我想找到长度大于 0 的最后一项。对于我想找到长度大于 0list_two的第一个变量的索引。

现在我创建了两个函数:

def index_last_long(sentence):
  for index, word in enumerate(sentence):
    if len(word) == 0:
      return index-1

def index_first_long(sentence):
  for index, word in enumerate(sentence):
    if len(word) > 0:
      return index

这确实有效。但是,我认为必须有其他方法需要更少的代码来执行相同的任务。

谁知道这种方法?

标签: python-3.xlistindices

解决方案


你可以这样做:

last = next((i for i, x in enumerate(reversed(list_one)) if len(x) > 0), None)
first = next((i for i, x in enumerate(list_two) if len(x) > 0), None)

如果此类索引不存在,None则返回。随意修改该值,例如使用-1或其他东西。


推荐阅读