Python 3.x 完全利用用户输入制作词典
是否有可能完全利用用户输入制作词典? 例如:Python 3.x 完全利用用户输入制作词典,python-3.x,dictionary,Python 3.x,Dictionary,是否有可能完全利用用户输入制作词典? 例如: 据我所知,你想要这样的东西,对吗 array = [] dict = {} for x in range(2): obj = {} dict_name = input('Name :') key = input('Key :') obj[key] = input('Value :') dict[dict_name] = obj pr
据我所知,你想要这样的东西,对吗
array = []
dict = {}
for x in range(2):
obj = {}
dict_name = input('Name :')
key = input('Key :')
obj[key] = input('Value :')
dict[dict_name] = obj
print(dict)
array.append(dict)
# To have result:
# car= {'Toyota': 'White'}
print(array)
基本上,我们首先创建一个数组,只是为了附加我们将要创建的所有对象,在循环中我们添加obj={},这样我们可以在每次循环开始时创建一个新对象,当循环结束时,我们将dict附加到数组中
这将导致:
{'car': {'toyota': 'white'}, 'car': {'toyota': 'red'}}
[{'car': {'toyota': 'white'}, 'car': {'toyota': 'red'}}]
可能吗?对然而,在大多数情况下,基于用户输入命名标识符是毫无意义的。您可以执行类似于
globals()[name]={k:v}
的操作,但您也可以将name
分配给cars
的dict
,而无需修改globals()的dict
)
这会导致调试的噩梦。但这就是@Axe319如何将变量名和'car'作为dict的值分配给dict的要点。简单的name={k:v}使字典'name'不是'car'。
{'car': {'toyota': 'white'}, 'car': {'toyota': 'red'}}
[{'car': {'toyota': 'white'}, 'car': {'toyota': 'red'}}]