Python字典操作与键的探索
版权申诉
156 浏览量
更新于2024-08-16
收藏 50KB PDF 举报
"Python核心编程第二版的习题答案,主要涉及字典操作和键的使用规则。"
在Python编程中,字典是一种非常重要的数据结构,它提供了键值对的存储方式。在本习题中,有两个关键知识点被提及:
1. **字典的合并**:
- `dict.update(dict2)` 是用于合并两个字典的方法。它将`dict2`中的所有键值对添加到`dict`中。如果`dict`中已经存在与`dict2`相同的键,则`dict2`的值会覆盖原有的值。
2. **字典的键**:
- 字典的键必须是可哈希的,因为它们用于索引字典中的值。可哈希性意味着这些对象在内存中的位置是固定的,这使得字典可以快速查找键对应的值。
- 可哈希的对象包括但不限于整数、浮点数(尽管数值相等的整数和浮点数被视为同一键)、字符串和元组(只要元组内的元素也是可哈希的)。
- 不可哈希的对象,如列表、字典、集合等,不能作为字典的键,因为它们的内容可以改变,从而导致哈希值变化。
- 内置的`hash()`函数可以用来检查一个对象是否可哈希。尝试将不可哈希的对象传递给`hash()`函数会导致`TypeError`。
例如,尝试将不可哈希类型如列表、字典和集合作为键会抛出错误:
```python
>>> hash([1,2])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
```
```python
>>> hash({1:2,})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
```
```python
>>> hash(set('abc'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
```
然而,可哈希的类型如元组、字符串和冻结集合(frozenset)是可以作为键使用的:
```python
>>> hash(('abc'))
-1600925533
>>> hash(1.0)
1
>>> hash(frozenset('abc'))
-114069471
```
冻结集合(frozenset)是集合的一个不可变版本,因此它可以被用作字典的键。
理解这些概念对于有效地使用Python字典至关重要,因为字典的性能在很大程度上取决于键的哈希能力。在实际编程中,我们通常选择不可变对象作为字典键以确保数据的一致性和效率。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-02-02 上传
2021-08-09 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
gw19501103285
- 粉丝: 2
- 资源: 7万+
最新资源
- 庆国庆生日蛋糕flash动画
- URL图片引入 一次封装永久用.zip
- NPS.Exercises.WS20
- 电视直播源管理助手1.4正式版
- trajetos-app:跳到正确的地方,了解周围的环境,然后进行下一次巴士之旅
- 注册:这是使用一些基本JavaScript的响应式注册
- real estate website-开源
- shelfie:原始版本的重推(修复github仓库)
- linux 32位的jdk8,版本:jdk-8u221-linux-i586.rpm
- jquery.squeeze:将图像挤压到包装器
- kubedemo:在openstack上使用kubernetes进行实验
- JAVA实现私人牙科诊所管理系统.rar_怎么知道牙科诊所正规
- pnDefineMachine-开源
- 备注:一个简单的vim插件,用于记录研究文章
- mysql代码-单表查询,多表查询
- Visual-dialog:一个使终端中的对话框更容易的库