我正在尝试从用户那里获得特殊输入,然后将其保存在字典中。我想到的输入是这样的:
>>> id 1230
,我希望将其保存为:
{"id":1230}
或
[(id,1230)]
我的问题是实际上有两个变量,一个是字符串,另一个是整数,所以我不知何故从用户那里得到了一行,然后将第一和第二部分分开并保存在其中一个我提到的表格。我知道它与map()函数有关,也许还使用了lambda表达式。一旦我使用了这样的代码,就得到了两个整数:
x,y = map(int,input().split())
但是我真的不知道如何使用字符串和整数。 非常感谢
答案 0 :(得分:5)
您在这里不需要map
。您可以使用str.split
按空格分割,然后显式创建字典:
var = input('Enter input: ') # 'id 1230'
key, value = var.split()
d = {key: int(value)} # {'id': 1230}
您可以添加一些检查以确保在输入格式之前正确输入格式:
while True:
try:
var = input('Enter input: ') # 'id 1230'
key, value = var.split()
d = {key: int(value)} # {'id': 1230}
break
except ValueError:
print('Incorrect format supplied, type "id 1230" expected. Please try again.')
答案 1 :(得分:5)
关于您要将数据存储为dict
还是tuples
列表的问题取决于您是否希望用户覆盖现有值。如果将值存储在dict
中,则输入
id 1230
hi 16
id 99
将产生像{"id": 99, "hi":16}
这样的字典,因为第二个输入id
会覆盖第一个输入。元组方法列表将产生[("id", 1230), ("hi", 16), ("id", 90)]
。
其他人已经提出了如何解析值的方法,但是为了完整起见,我还将其添加到答案中。
d = dict()
var = input('Enter input: ')
key, value = var.split()
d[key] = int(value)
L = list()
var = input('Enter input: ')
key, value = var.split()
L.append((key, int(value)))
答案 2 :(得分:3)
您需要拆分输入并将其保存到字典中。
data = dict()
keyValue = input()
data[keyValue.split(' ')[0]) = keyValue.split(' ')[1]
答案 3 :(得分:3)
usr_inpt = input("enter whatever you want to enter: ")
id, value = usr_inpt.split()
output = [(id,value)]
这会将您的输入格式化为tuple
...但是我不建议您使用dictionary
,因为每个键都必须是唯一的,并且如果您有来自用户的多次输入,则可能最终会覆盖之前的内容输入的用户输入。
答案 4 :(得分:3)
d={}
user_input=input('input id and number separated by space')# 'id 1'
key_value_split=user_input.split(' ')
d[key_value_split[0]]=key_value_split[1] # for dict
print(d) # {'id': '1'}
对于元组
print(d.items()) # [('id', '1')]
答案 5 :(得分:3)
>>> i = "id"
>>> x = 1234
>>> out = {i:x}
>>> out
{'id': 1234}
>>> out = [(i,x)]
>>> out
[('id', 1234)]
>>>
>>>
>>>
>>> ix = input("--> ")
--> id 1234
>>> ix = ix.split()
>>> out = {ix[0]:int(ix[1])}
>>> out
{'id': 1234}
>>> out = [(ix[0],int(ix[1]))]
>>> out
[('id', 1234)]
>>>
或者某个功能可以工作:
>>> add = lambda x:{x.split()[0],int(x.split()[1])}
>>> out = add(input("--> "))
--> id 1234
>>> out
{1234, 'id'}
>>>
答案 6 :(得分:1)
# Intiatlise value and id
id=0
value=''
id,value=input().split()
id=int(id)