python:一个用于'的衬里;如果列表[0]==";"富",';当列表可能为空时
我真的不喜欢在循环和ifs中写这些:python:一个用于'的衬里;如果列表[0]==";"富",';当列表可能为空时,python,Python,我真的不喜欢在循环和ifs中写这些: if len(list) != 0: #or just "if list:", but explicit better than implicit if list[0] == "foo": ... 您最喜欢的单衬里(或至少一个嵌套层)类似物是什么 编辑:对不起,这是我的一个愚蠢的问题,我在这里出了问题。但我觉得有些情况下,中的两个条件如果a和/或b一起写入,将导致异常,但仍然可以同时为真。我投票结束这个问题。如果您只想确保foo在列
if len(list) != 0: #or just "if list:", but explicit better than implicit
if list[0] == "foo":
...
您最喜欢的单衬里(或至少一个嵌套层)类似物是什么
编辑:对不起,这是我的一个愚蠢的问题,我在这里出了问题。但我觉得有些情况下,
中的两个条件如果a和/或b一起写入,将导致异常,但仍然可以同时为真。我投票结束这个问题。如果您只想确保foo在列表中,您可以使用:
if list and list[0] == 'foo':
....
if 'foo' in my_list:
do_something()
否则,如果列表的索引0需要是foo,我将使用:
if my_list and my_list[0] == 'foo':
do_something()
你想实现什么?如果len(list)!=0和list[0]==“foo”:…
?我不认为“显式优于隐式”规则适用于这里if-somelist:
是测试非空性的标准习惯用法。如果bool(somecondition)为真,我们就不写,,如果somecondition:,我们就写。哎呀,对不起,我的大脑出故障了。谢谢我真的觉得,在某些情况下,我检查的两个条件可能会导致True,但一起会导致异常。在Python中,和
执行“短路”求值,因此如果列表
求值为false,则不会求值列表[0]
。顺便说一下,使用list
作为变量名是不好的做法;建议的缩写包括lst
或L
。如果使用list
作为变量,则可以对list
类进行“阴影”处理。(您仍然可以使用type([])之类的技巧访问它,但不隐藏它更容易。