用于映射到自动递增整数值的键的 Python 数据结构

adi*_*rof 1 python dictionary data-structures

我想将字符串列表存储到字典数据结构中,其中键是我提供的字符串,值是自动递增计数。

text = ['hello', 'world', 'again']
ai_ds = {} # define the data structure here, used dict just for reference
ai_ds.add(text[0]) # should return 0
ai_ds.add(text[1]) # should return 1

auto_increment_ds.get(text[0]) # should return 0
Run Code Online (Sandbox Code Playgroud)

我可以通过保留手动计数器,然后在字典中插入值时使用它来做到这一点,但我想知道 python 中是否有像这样的默认数据结构。

AKX*_*AKX 5

带有 setdefault 的字典可以正常工作:

d = {}
d.setdefault("a", len(d))
d.setdefault("b", len(d))
d.setdefault("a", len(d))
print(d) # a=0, b=1
Run Code Online (Sandbox Code Playgroud)

  • 避免 `.setdefault` 重复的一行:`d = defaultdict(lambda: len(d))` (`collections.defaultdict`)。然后 `d['something']` 用新的数字添加 'something'。 (3认同)