我正在使用 python 读取一个文本文件,其格式为每列中的值可以是数字或字符串。
当这些值是字符串时,我需要分配该字符串的唯一 ID(在同一列下的所有字符串中都是唯一的;如果同一字符串出现在同一列下的其他位置,则必须分配相同的 ID)。
什么是有效的方法?
使用带有默认值工厂的 defaultdict 来生成新的 id:
ids = collections.defaultdict(itertools.count().next)
ids['a'] # 0
ids['b'] # 1
ids['a'] # 0
当您在 defaultdict 中查找键时,如果它尚不存在,defaultdict 会调用用户提供的默认值工厂来获取该值并在返回之前存储它。
collections.count()
创建一个从 0 开始计数的迭代器,所以collections.count().next
是一个绑定方法,每当您调用它时都会生成一个新整数。
结合起来,这些工具会生成一个字典,每当您查找以前从未查找过的内容时,该字典都会返回一个新整数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)