【发布时间】:2022-01-06 12:56:21
【问题描述】:
我有以下翻译词典:
{0: {'a', 'b', 'c'},
1: {'a', 'b', 'c', 'd'},
2: {'k', 'b', 'e', 'a', 'n'}}
我想将它“反转”为键的属性(这里的键是 id 的一种形式)。 给定一组属性,给我相关的 id(键)。
例如,给定{'a', 'b', 'c'} 返回0。
执行此操作的最佳做法是什么?属性可以以不同的顺序出现,这就是我使用集合的原因。 我应该将它插入数据框(翻译表)吗?还是有其他解决方案?
【问题讨论】:
-
这取决于数据量。高达 e。 G。 100k 键 dict 和 sets 的简单方法应该可以工作。
-
您可以查看
frozenset。由于它是可散列的,因此可以将其作为键传递给反向字典。 -
使用
{frosenset(v): k for k,v in data.items()}(假设值是唯一的)然后在查找密钥时转换为冻结集
标签: python pandas dictionary set