我使用以下方法检查项目是否在my_list中:
if item in my_list:
print("Desired item is in list")
“if item in my_list:”是在列表中查找项目的最“Python”方式吗?
编辑:这个问题被认为是重复的,但我并不完全相信:这里这个问题大致上是“在列表中查找元素的最Python方式是什么”。这个问题的第一个答案在所有Python方法中都非常广泛。
而在链接的重复问题及其对应的答案上,重点大致仅限于Python中的“in”关键字。与目前的问题相比,我认为这确实是一个限制。
我认为当前问题的答案比拟议的重复问题/答案更为相关和详细。
另一种选择是:您可以使用列表中的if项检查列表中的某个项是否存在,但这是顺序O(n)。如果您正在处理大量项目列表,而您需要知道的只是某个项目是否是列表中的一员,则可以先将列表转换为集合,并利用恒定时间集查找:
my_set = set(my_list)
if item in my_set: # much faster on average than using a list
# do something
并非所有情况下都是正确的解决方案,但在某些情况下,这可能会给您带来更好的性能。
请注意,使用set(my_list)创建集合也是O(n),因此如果只需要这样做一次,那么这样做不会更快。如果您需要重复检查成员资格,那么在创建初始集之后,每次查找都将是O(1)。