Python字典单个键为何可对应多个值?附代码答疑
代码逻辑解答
这行books_dict[title] = [author,subject,year]是Python字典的完全合法写法,具体逻辑如下:
- Python字典的核心规则是单个键仅能绑定1个值对象,但对值对象的类型没有强制限制,可以是整数、字符串这类基础类型,也可以是列表、元组、自定义类实例甚至另一个字典。
- 这行代码里,键
title绑定的并不是多个独立值,而是1个列表类型的容器对象,author、subject、year三个数据是作为元素存放在这个列表里的,本质上还是单键对应单值,只是这个值本身承载了多份关联数据。
这是Python开发中非常常用的关联多属性的写法,实际运行效果可以参考如下示例:
# 初始化存储书籍信息的字典 books_dict = {} # 定义单本书的相关变量 title = "Python编程:从入门到实践" author = "埃里克·马瑟斯" subject = "计算机编程" year = 2016 # 执行赋值操作 books_dict[title] = [author, subject, year] # 查看字典内容 print(books_dict) # 输出结果:{'Python编程:从入门到实践': ['埃里克·马瑟斯', '计算机编程', 2016]} # 取值时可以通过下标获取对应属性 print(books_dict[title][0]) # 输出作者:埃里克·马瑟斯 print(books_dict[title][2]) # 输出年份:2016
如果需要实现同一个键关联多组同类型数据(比如同一书名对应多个不同印次的出版年份),也可以沿用这个思路,把值设为列表后不断往里追加元素即可,不存在语法问题。
内容的提问来源于stack exchange,提问作者Mohamad Aminzadeh
相关产品推荐
相关产品推荐

