我的Python脚本使用以下函数打开2 threading.Threads()
:
Stuff()
:如果事情发生在一个大循环中,函数会将内容附加到list
(全局变量)。Monitor()
:功能显示每秒添加到list
的最后一项,并附加信息。这两个线程的目的是Stuff()
包含一个被优化为非常快(~200 ms /迭代)的循环,因此从内部打印将毫无意义。 Monitor()
负责输出。
开始时,我设置list = []
,然后启动线程。在Monitor()
内,我使用list[-1]
获取列表的最后一项,但如果之前没有发生任何事情,则列表仍为空,Monitor()
会引发IndexError: list index out of range
。
如果列表为空,是否有一种简单的方法(没有try
或if not list
)来显示None
而不是错误?
答案 0 :(得分:5)
这是一种方式,虽然看起来很奇怪:
(list or [None])[-1]
答案 1 :(得分:0)
我发现这比@ Alex的回答更具可读性
onClick
编辑虽然必须承认,但这是我第一次遇到这种用法。一直认为那些表达式返回bool类型:)