2024-06-17 13:16:26 发布
网友
我想要一种方法来找出列表中哪个元素不是""例如: ['','','b']它应该返回2,因为"b"的索引是2
""
['','','b']
2
"b"
您可以使用一个简单的for循环并检查该值是否不是“”,然后将该值的索引保存在列表理解中以解决您的问题
test = ['','','b'] print([test.index(x) for x in test if x != ''][0]) # output 2
一个好的、快速的方法可以将^{}与^{}和generator expression一起使用:
next(index for index,item in enumerate(mylist) if item != '')
这非常有效;一旦找到匹配项,它就会停止检查。如果列表中的所有内容都是'',它将抛出一个StopIteration异常。如果你想要一个默认值,那么说-1:
''
下面使用enumerate将每个元素绑定到一个数字索引,然后我们过滤数组中的非空字符串。在
enumerate
test = ['','','b'] print(filter(lambda a: a[1] != "", enumerate(test)))
test = ['','','b'] print(filter(lambda a: a[1] != "", enumerate(test))[0][0])
test = ['','','b'] print([ele[0] for ele in filter(lambda a: a[1] != "", enumerate(test))])
您可以使用一个简单的for循环并检查该值是否不是“”,然后将该值的索引保存在列表理解中以解决您的问题
一个好的、快速的方法可以将^{} 与^{} 和generator expression一起使用:
这非常有效;一旦找到匹配项,它就会停止检查。如果列表中的所有内容都是
^{pr2}$''
,它将抛出一个StopIteration异常。如果你想要一个默认值,那么说-1:下面使用
enumerate
将每个元素绑定到一个数字索引,然后我们过滤数组中的非空字符串。在如果需要所有实例:
返回
^{pr2}$如果只需要第一个实例:
如果需要所有实例的列表:
相关问题 更多 >
编程相关推荐