当将 `(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是可变的,因此无法将其放入集合中。
s = {(1, 2, 3), (1, [2, 3])} # TypeError: unhashable type: 'list'
(1, [2, 3])放不见dict中
Sign in to make a reply
Super-String
当将 `(1, 2, 3)` 和 `(1, [2, 3])` 放入 `dict` 或 `set` 中时,会发生不同的结果。
当将它们放入 `dict` 中时,`(1, 2, 3)` 和 `(1, [2, 3])` 会被视为两个不同的key,因为它们的value不同。这是因为元组中的第二个元素是一个可变对象,所以它们不相等。
```python
```
当将它们放入 `set` 中时,会发生 `TypeError`,因为集合中的元素必须是不可变的。由于 `(1, [2, 3])` 中的list是可变的,因此无法将其放入集合中。
```python
s = {(1, 2, 3), (1, [2, 3])} # TypeError: unhashable type: 'list'
```