python - 测试列表的索引是否存在

标签 python

好的,所以这实际上是两个问题。首先,我想知道是否有一种方法可以测试列表的索引是否存在。例如,我想在每次给定条件为真时递增 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/

相关文章:

python / Pandas : How to combine cumsum and cumcount with agg function?

python - scipy:没有框架,轴,只有内容的savefig

Python,为什么当我使用生成器 yield 时,.py 和 shell 得到不同的结果?

Mac 下的 python 输入问题

python - Python 是否有像 Ruby 的 %w(things in array) 这样创建数组的快捷方式

python - 如何禁用 QtableView pyqt 中的某些列?

javascript - 如何在 Flask 网页中正确显示 Python 字典数据?

python - python 有没有类似banned.h 的东西?

Python - isinstance 返回 false

python - Django:重复键值违反唯一约束