我正在做一个项目但是我在使用字典时遇到了一个问题,更具体地说是如何添加条目
thing = {'a':1, 'b':2, 'c':3}
thing.update(input('add more'))
print(thing)
我尝试添加时遇到的问题是:ValueError: dictionary update sequence element #0 has length 1; 2 is required
。那么我需要以何种方式将信息放入以便字典更新?到目前为止,我尝试了#34; d [4]
"," d 4
"和" d:4
"。
答案 0 :(得分:1)
您必须使用花括号(let target = $(`<a href="#"></a>`);
)将输入转换为字典。您可以拆分输入,以便包含包含键的字符串和包含值的字符串。
例如,如果您要添加分配了值{ }
的字符串input
,您可以使用:
d:4
这是因为key, val = your_input.split(':')
thing.update({key:val})
函数需要字典作为参数。
答案 1 :(得分:1)
您尚未描述用户可以接受的内容,但是,您可以使用ast.literal_eval()
执行此操作。这要求用户输入有效的Python字典。
>>> from ast import literal_eval
>>> thing = {'a':1, 'b':2, 'c':3}
>>> thing.update(literal_eval(input('add more: ')))
add more: {'d':4, 'e':5, 'z':26}
>>> thing
{'a': 1, 'c': 3, 'z': 26, 'd': 4, 'b': 2, 'e': 5}
虽然输入不是非常用户友好。
您可以让用户输入空格分隔的键和值,例如a 1 e 5 z 26
。然后将其转换为dict并执行更新:
>>> thing = {'a':1, 'b':2, 'c':3}
>>> it = iter(input('add more: ').split())
add more: a 10 y 25
>>> thing.update(dict(zip(it, it)))
>>> thing
{'y': '25', 'c': 3, 'b': 2, 'a': '10'}
或者您可以使用:
分隔键和值,每个项目之间留有空格:
>>> thing = {'a':1, 'b':2, 'c':3}
>>> thing.update(dict(s.split(':') for s in input('add more: ').split()))
add more: a:10 z:26
>>> thing
{'a': '10', 'c': 3, 'z': '26', 'b': 2}
答案 2 :(得分:0)
如果您的目标是添加单个元素,则可以执行以下操作:
thing['d'] = 4
在合适的位置替换输入。
答案 3 :(得分:-1)
dictionary = {'Big brother':'Onii-chan', 'Big sister': 'Onee-sama', 'Hello': 'Konichiwa', 'Master': 'Sensei', 'Good Morning': 'Ohayo', 'Senior': 'Senpai', 'Ocean': 'Kaiyou/Umi','Darkness': 'Yami', 'Light': 'Hikari', 'Sky':'Sora','x':[1,2]}
keep_going = 'Y'
while keep_going == 'y' or keep_going == 'Y':
print(dictionary.keys())
x = input("Pick one out of the list to see the translation in japanese")
print(dictionary[x])
keep_going = input('would you like another one? (Y for Yes): ')