{"id":390,"date":"2022-02-10T09:59:15","date_gmt":"2022-02-10T01:59:15","guid":{"rendered":"http:\/\/47.98.165.52\/?p=390"},"modified":"2022-02-10T10:01:34","modified_gmt":"2022-02-10T02:01:34","slug":"%e6%94%b9%e5%8f%98dict%e7%b1%bb%e5%9e%8b%ef%bc%8c%e6%96%b0%e5%bb%ba%e4%b8%80%e4%b8%aa%e4%b8%8d%e6%8e%a5%e5%8f%97%e9%87%8d%e5%a4%8d%e5%80%bc%e7%9a%84%e5%ad%97%e5%85%b8","status":"publish","type":"post","link":"\/?p=390","title":{"rendered":"\u6539\u53d8dict\u7c7b\u578b\uff0c\u65b0\u5efa\u4e00\u4e2a\u4e0d\u63a5\u53d7\u91cd\u590d\u503c\u7684\u5b57\u5178"},"content":{"rendered":"<pre><code class=\"language-python\">class DistinctError(ValueError):\n    &quot;&quot;&quot;\u5982\u679c\u5411distinctdict\u6dfb\u52a0\u91cd\u590d\u503c\uff0c\u5219\u5f15\u53d1\u8fd9\u4e2a\u9519\u8bef\u3002&quot;&quot;&quot;\n\nclass distinctdict(dict):\n    &quot;&quot;&quot;\u4e0d\u63a5\u53d7\u91cd\u590d\u503c\u7684\u5b57\u5178&quot;&quot;&quot;\n    def __setitem__(self, key, value):\n        if value in self.values():\n            if (\n                    (key in self and self[key] != value) or\n                key not in self\n            ):\n                raise DistinctError(\n                    &quot;This value already exists for different key&quot;\n                )\n        super().__setitem__(key, value)<\/code><\/pre>\n<p>\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>\n<pre><code class=\"language-shell\">In [75]: my = distinctdict()\n\nIn [76]: my[&#039;key&#039;] = &#039;value&#039;\n\nIn [77]: my[&#039;other_key&#039;] = &#039;value&#039;\nTraceback (most recent call last):\n\n  File &quot;C:\\Users\\Administrator\\AppData\\Local\\Temp\/ipykernel_420\/1151056366.py&quot;, line 1, in &lt;module&gt;\n    my[&#039;other_key&#039;] = &#039;value&#039;\n\n  File &quot;C:\\Users\\Administrator\\AppData\\Local\\Temp\/ipykernel_420\/3560190974.py&quot;, line 13, in __setitem__\n    &quot;This value already exists for different key&quot;\n\nDistinctError: This value already exists for different key\n\nIn [78]: my[&#039;other_key&#039;] = &#039;value2&#039;\n\nIn [79]: my\nOut[79]: {&#039;key&#039;: &#039;value&#039;, &#039;other_key&#039;: &#039;value2&#039;}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>class DistinctError(ValueError): &quot;&quot;&quot;\u5982\u679c\u5411distinctdict\u6dfb\u52a0   \u2026 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[35],"tags":[],"_links":{"self":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts\/390"}],"collection":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=390"}],"version-history":[{"count":2,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/390\/revisions"}],"predecessor-version":[{"id":392,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/390\/revisions\/392"}],"wp:attachment":[{"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}