如何在Python中获取列表中的最后一个非空项?

如何在Python中获取列表中的最后一个非空项?,python,list,generator,Python,List,Generator,我今天刚开始学习Python 我有一份清单: [text:u'Oranges', text:u'Apples', empty:'', empty:''] 如何获取列表中最后一个非空项?在这种情况下,“苹果” 我在中看到,它们得到第一个非空值。我不知道怎么才能拿到最后一张 next(s for s in reversed(list_of_string) if s) 如果您真的有一个字典,请使用反转(dictionary.values()),但请记住,您对字典所做的任何操作都可能会改变它的顺序,

我今天刚开始学习Python

我有一份清单:

[text:u'Oranges', text:u'Apples', empty:'', empty:'']
如何获取列表中最后一个非空项?在这种情况下,“苹果”

我在中看到,它们得到第一个非空值。我不知道怎么才能拿到最后一张

next(s for s in reversed(list_of_string) if s)
如果您真的有一个字典,请使用
反转(dictionary.values())
,但请记住,您对字典所做的任何操作都可能会改变它的顺序,并且在不同版本的Python之间,即使对于给定的状态,它的顺序也不一致

如果您希望密钥按插入顺序保存,请使用
OrderedDict

此:

d = [1, 2, 3, "", 4, "", 5, ""]
last_non_empty = [i for i in d if i][-1]

这不是一个有效的Python表达式,更不用说一个列表了。我想他只是在注释它,以便我们知道他说的空是什么意思:)对不起,这实际上是一个使用xlrd的对象列表。