如何使用用户输入

时间:2016-04-13 01:37:37

标签: python python-3.x dictionary

我正在做一个项目但是我在使用字典时遇到了一个问题,更具体地说是如何添加条目

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"。

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): ')