Discuss / Python / clock in

clock in

Topic source

Super-String

#1 Created at ... [Delete] [Delete and Lock User]

当将 `(1, 2, 3)` 和 `(1, [2, 3])` 放入 `dict` 或 `set` 中时,会发生不同的结果。

当将它们放入 `dict` 中时,`(1, 2, 3)` 和 `(1, [2, 3])` 会被视为两个不同的key,因为它们的value不同。这是因为元组中的第二个元素是一个可变对象,所以它们不相等。

```python

d = {(1, 2, 3): 'value1', (1, [2, 3]): 'value2'}
print(d)  # {(1, 2, 3): 'value1', (1, [2, 3]): 'value2'}

```

当将它们放入 `set` 中时,会发生 `TypeError`,因为集合中的元素必须是不可变的。由于 `(1, [2, 3])` 中的list是可变的,因此无法将其放入集合中。

```python

s = {(1, 2, 3), (1, [2, 3])}  # TypeError: unhashable type: 'list'

```

(1, [2, 3])放不见dict中


  • 1

Reply