好的,所以这实际上是两个问题。首先,我想知道是否有一种方法可以测试列表的索引是否存在。例如,我想在每次给定条件为真时递增 list[i],使用 list[i] += 1
之类的代码,但如果索引不存在,我会得到一个错误。所以我想设置一个测试,在出现错误的情况下,执行类似 list.append(1)
的操作。什么代码可以完成这样的测试条件? If list[i]
抛出错误。
作为后续问题,一旦建立测试,除了使用上述附加方法之外,还有什么方法可以创建列表索引?
最佳答案
听起来您真正想要的是一个 defaultdict
-- 与其说是一个列表,不如说是一个整数映射到某种您已经看到它们的次数的计数。
(这非常接近 perl 中的 autovivificaiton 的概念,如果您以前使用过的话)
这段代码可以工作:
from collections import defaultdict
# don't name a variable 'list'; you'll end up hiding the actual list type
my_List = defaultdict(int) # create a mapping, elements will default to 0
然后就可以使用了
my_list[i] += 1
对于i
的任何 值。如果之前已经看到它,那么它将递增它。如果不是,则 my_list[i]
将获得默认值 0,该值将立即递增到 1。
关于python - 测试列表的索引是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12540600/