Python 我可以在非空列表和空列表上使用find吗?

Python 我可以在非空列表和空列表上使用find吗?,python,list,Python,List,我是否有可能做到以下几点?如果有,我做错了什么 我想获取列表中的最后一项,并依靠.find()返回最后一项,即使列表为空 我有这样一份清单: list=[“项目1”、“项目2”、“项目3”、“等等] 我想得到最后一个元素,即使它是空的。为此,我使用list[-1:]访问最后一个元素。我的问题是,我认为我需要在该列表的最后一个元素上使用.find()。但是,如果列表为空,.find()不起作用 无法工作的原因是list[-1]将返回etc,但list[-1:]将返回['etc']。在这种情况下,还

我是否有可能做到以下几点?如果有,我做错了什么

我想获取列表中的最后一项,并依靠
.find()
返回最后一项,即使列表为空

我有这样一份清单:

list=[“项目1”、“项目2”、“项目3”、“等等]

我想得到最后一个元素,即使它是空的。为此,我使用
list[-1:]
访问最后一个元素。我的问题是,我认为我需要在该列表的最后一个元素上使用
.find()
。但是,如果列表为空,
.find()
不起作用


无法工作的原因是
list[-1]
将返回
etc
,但
list[-1:]
将返回
['etc']
。在这种情况下,还有其他使用
.find()
的方法吗?

为什么不能测试列表中是否有内容,然后使用find

>>> list = []
>>> if list:
        #You would use find here.
...     print("not empty")
... else:
...     print("empty")
... 
empty
>>>

如果列表是空的,那么它怎么会有最后一个元素呢?最好重写代码,这样就可以使用简单的If/else语句检查列表是否为空,并执行一些不同的操作。如果您的整个计划围绕着对一个不存在的项目执行
.find()
,那么您将遇到重大问题:)您希望对一个不存在的元素使用
find
。你到底想干什么?你能在一个空车库里驾驶最后一辆车吗?吃空袋子里的最后一片薯片?你试图做的事情没有意义;你需要检测列表的空性并做一些其他的事情。我不确定这是一个坏问题,只是OP假设了一些关于Python列表的东西,这些东西听起来几乎像C。@AkshatMahajan我在if语句中使用了.find(),所以如果我在空列表中使用find,if语句将不会运行。我用
if len(list)>0和list[-1:]修复了我的代码。find(“stuff”)!=-1:#做点什么
我实际上用if len(list)>0修复了它,但是你的代码可以工作too@D.Joe我不知道一个纯粹主义者会说什么。调用函数
len
可能比使用
if list
更昂贵,但是如果你的代码是有效的,并且你理解它,我会说任何一种方法都是好的。@d.Joe:最好使用
if list:
。请看。@zondo我注意到,随着Python越来越多地进入主流使用,Python作为一种绝对的做事方式越来越不受欢迎。@octopusgrabbus:我们必须向进入主流的非程序员低头吗?我们不应该树立一个好榜样吗?