【发布时间】:2021-08-01 01:57:42
【问题描述】:
我有一个 defaultdict 初始化为:
w2i = defaultdict(lambda: len(w2i))
UNK = w2i["<unk>"]
所以 UNK 的值为 0。 现在我向 w2i 添加更多元素(单词),每个键都映射到该实例的字典长度。
那么如果我们执行:
w2i = defaultdict(lambda: UNK, w2i)
并尝试使用新的或现有的词键访问 w2i,结果会是什么?例如假设“一”是 w2i 中存在的键,而“二”不在 w2i 中。像上面那样重新定义w2i之后,下面的结果会是什么?
onew2i = w2i["one"]
twow2i = w2i["two"]
另外,defaultdict中的2个参数代表什么。大多数使用 lambda 的 defaultdict 教程似乎只有 1 个参数。
谢谢!
【问题讨论】:
-
自己运行一下看看?我没看到这里有什么问题。
-
请注意
lambda的绑定少于,。defaultdict(lambda: UNK, w2i)等价于defaultdict((lambda: UNK), w2i)-w2i只是初始 dict 内容,与dict(w2i)相同。 "All remaining arguments are treated the same as if they were passed to the dict constructor, including keyword arguments."
标签: python string dictionary collections defaultdict