在Python中,字典的键可以是任何不可变类型(如整数、浮点数、字符串、元组等),因此数字(包括 `int`、`float` 等)完全可以作为字典的键。以下是关于数字作为键的详细说明和注意事项:
直接使用数字作为键,语法与其他类型的键一致:
python
my_dict = {
1: "apple",
2: "banana",
3.14: "pi",
-5: "negative
print(my_dict[1]) 输出: apple
print(my_dict[3.14]) 输出: pi
python
d = {1: "int", 1.0: "float"}
print(d) 输出: {1: 'float'}(因为 1 == 1.0 为 True,键被覆盖)
这里 `1` 和 `1.0` 的哈希值相同且相等,导致后者覆盖前者。若需要区分,需确保类型不同且不相等:
python
d = {1: "int", 2.0: "float"} 1 != 2.0,视为不同键
python
d = {True: "yes", 1: "no"}
print(d[True]) 输出: no(True 和 1 被视为相同键)
数字本身不可变,因此完全合法作为键。但若使用可变类型(如列表)作为键会引发错误:
python
错误示例:列表不可哈希
invalid_dict = { [1, 2]: "value" } 报错: TypeError
python
d = {1: "one"}
print(d[1]) 正确
print(d["1"]) KeyError(字符串 '1' 与整数 1 不同)
python
d = {}
key = 42
d[key] = "answer
d[key] = "new answer" 覆盖原有值
字典遍历时,键的顺序在Python 3.7+中遵循插入顺序:
python
d = {3: "three", 1: "one", 2: "two"}
for k in d:
print(k, d[k]) 输出顺序: 3 → 1 → 2
python
创建字典
scoreboard = {
100: "完美",
90: "优秀",
80: "良好",
70.5: "及格
添加新键值
scoreboard[60] = "补考
修改值
scoreboard[70.5] = "需努力
检查键是否存在
if 90 in scoreboard:
print("90分存在!")
遍历字典
for score, result in scoreboard.items:
print(f"得分 {score}: {result}")
输出:
90分存在!
得分 100: 完美
得分 90: 优秀
得分 80: 良好
得分 70.5: 需努力
得分 60: 补考
通过合理使用数字键,可以高效地管理键值对数据。
版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态
