您如何使用变量来引用多个词典中的一个,以便您可以编辑该词典
How do you use a variable to reference one of multiple dictionaries so that you can edit that one dictionary
我的程序中使用了三个词典,需要能够向这三个词典中的任何一个添加或删除一个项目。如何通过使用变量告诉程序将项目添加到哪个字典?我不能简单地输入“DictName[NewKey] = NewValue”,因为它取决于用户选择的字典。
示例:
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
var = input("Please choose a dictionary") #Dict1, Dict2, or Dict3
print("Add item to", var)
var[Key4] = Value 4
我的问题是我无法使用变量来调用字典并更改编辑它。
使用字典中的字典:
super_dict = {
"Dict1": {"Key1": "Value1"},
"Dict2": {"Key2": "Value2"},
"Dict3": {"Key3": "Value3"}
}
然后您就可以通过这种方式访问它们了:
var = input(f"Please choose a dictionary: {', '.join(super_dict.keys())}") #Dict1, Dict2, or Dict3
print("Add item to", var)
super_dict[var]["Key4"] = "Value 4"
字典中的字典怎么样?例如,如果用户输入字符串“Dict1”,您可以这样 de-reference 该特定词典:
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
dict_of_dicts = {
"Dict1": Dict1,
"Dict2": Dict2,
"Dict3": Dict3,
}
print(dict_of_dicts["Dict1"]["Key1"])
Value1
通过新指令管理它们
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
dicts = {
"1": Dict1,
"2": Dict2,
"3": Dict3,
}
var = input("Please choose a dictionary") # 1 or 2 or 3
print("Add item to", var)
dicts[var][key4] = Value 4
像以前的答案一样使用新的词典词典效果很好,但如果词典数量不变,您可以使用简单的 if-elif-else
语句。
当然,如果有不同数量的字典,那么最好使用字典的字典。
if-elif-else 语句示例如下:
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
var = input("Please choose a dictionary") #Dict1, Dict2, or Dict3
print("Add item to", var)
if var == "Dict1":
# do what you want to Dict 1 here
elif var == "Dict2":
# do what you want to Dict 2 here
else:
# do what you want to Dict 3 here
这种globals()
方法在动态创建变量名方面效果很好。但它看起来有点复杂。 Dictionary of Dictionary 方法对您的程序来说是一种更简洁的方法。您可以在 How can you dynamically create variables?
上阅读更多内容
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
var = input("Please choose a dictionary: ") # 1 or 2 or 3
globals()[f"Dict{var}"] [f"Key{int(var)+1}"]= f"value{int(var)+1}"
print(globals()[f"Dict{var}"])
我的程序中使用了三个词典,需要能够向这三个词典中的任何一个添加或删除一个项目。如何通过使用变量告诉程序将项目添加到哪个字典?我不能简单地输入“DictName[NewKey] = NewValue”,因为它取决于用户选择的字典。
示例:
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
var = input("Please choose a dictionary") #Dict1, Dict2, or Dict3
print("Add item to", var)
var[Key4] = Value 4
我的问题是我无法使用变量来调用字典并更改编辑它。
使用字典中的字典:
super_dict = {
"Dict1": {"Key1": "Value1"},
"Dict2": {"Key2": "Value2"},
"Dict3": {"Key3": "Value3"}
}
然后您就可以通过这种方式访问它们了:
var = input(f"Please choose a dictionary: {', '.join(super_dict.keys())}") #Dict1, Dict2, or Dict3
print("Add item to", var)
super_dict[var]["Key4"] = "Value 4"
字典中的字典怎么样?例如,如果用户输入字符串“Dict1”,您可以这样 de-reference 该特定词典:
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
dict_of_dicts = {
"Dict1": Dict1,
"Dict2": Dict2,
"Dict3": Dict3,
}
print(dict_of_dicts["Dict1"]["Key1"])
Value1
通过新指令管理它们
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
dicts = {
"1": Dict1,
"2": Dict2,
"3": Dict3,
}
var = input("Please choose a dictionary") # 1 or 2 or 3
print("Add item to", var)
dicts[var][key4] = Value 4
像以前的答案一样使用新的词典词典效果很好,但如果词典数量不变,您可以使用简单的 if-elif-else
语句。
当然,如果有不同数量的字典,那么最好使用字典的字典。
if-elif-else 语句示例如下:
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
var = input("Please choose a dictionary") #Dict1, Dict2, or Dict3
print("Add item to", var)
if var == "Dict1":
# do what you want to Dict 1 here
elif var == "Dict2":
# do what you want to Dict 2 here
else:
# do what you want to Dict 3 here
这种globals()
方法在动态创建变量名方面效果很好。但它看起来有点复杂。 Dictionary of Dictionary 方法对您的程序来说是一种更简洁的方法。您可以在 How can you dynamically create variables?
Dict1 = {"Key1": "Value1"}
Dict2 = {"Key2": "Value2"}
Dict3 = {"Key3": "Value3"}
var = input("Please choose a dictionary: ") # 1 or 2 or 3
globals()[f"Dict{var}"] [f"Key{int(var)+1}"]= f"value{int(var)+1}"
print(globals()[f"Dict{var}"])