python - Python 字典使用相同的键但不同的值
问题描述
我想从键值对创建一个字典。问题是我有相同的键但不同的值。所以我的目标是创造
menu = [
{"viewclass": "MDMenuItem",
"text" : "option1"},
{"viewclass": "MDMenuItem",
"text" : "option2"}
]
我尝试使用 for 循环创建此变量
length = 2
menu = {}
view_class_keys = length * ["viewclass"]
view_class_values = length * ["MDMenuItem"]
text_keys = length * ["text"]
text_values = ["option1", "option2"]
for iterator in range(0, length):
menu[view_class_keys[iterator]] = view_class_values[iterator]
menu[text_keys[iterator]] = text_values[iterator]
print([menu])
# Output: [{'viewclass': 'MDMenuItem', 'text': 'option2'}]
我知道问题是密钥相同,但我不知道如何解决这个问题。
解决方案
你很接近。您应该在列表中聚合您的字典,同时在每次迭代时创建一个新字典,并将其附加到结果列表中:
length = 2
menu_list = []
view_class_keys = length * ["viewclass"]
view_class_values = length * ["MDMenuItem"]
text_keys = length * ["text"]
text_values = ["option1", "option2"]
for iterator in range(0, length):
menu = {}
menu[view_class_keys[iterator]] = view_class_values[iterator]
menu[text_keys[iterator]] = text_values[iterator]
menu_list.append(menu)
print(menu_list)
编辑:
假设您的代码中唯一的可变部分是text_values
列表,您的代码可以简化为
menu = [{"viewclass": "MDMenuItem", "text" : option} for option in text_values]
推荐阅读
- asterisk - 星号,键在后台命令上不起作用,就在后台之后
- html - 只有在 ipad 上的 safari 上刷新时才会显示背景图像
- lua - lua lgi 订阅 DBus 信号
- yii - 漂亮的 url 没有在 Yii2 中重定向
- java - java.lang.ClassNotFoundException,命令行制作问题和 bash 脚本
- python - 性能监控工具 vs 进程状态 (ps) 命令
- python - 查找列表中的所有键簇
- java - 如何使用 ffmpeg 在 java 程序中获取视频的持续时间?
- database - 在 Oracle 数据库中创建一种新类型的对象
- javascript - qTip2 - 在更改工具提示的内容后调用函数