在python中将用户输入转换为键值对

时间:2017-10-17 07:52:02

标签: python python-3.x

有没有办法让2个用户输入它们之间有空格并将第一个输入转换为键,第二个输入转换为该键的相应值?我知道这可以用这样的列表来完成。

ls = list(map(int, input("").split(" ")))

无论如何从用户那里获取输入而不是将它们转换为列表,将它们转换为字典?

2 个答案:

答案 0 :(得分:0)

如果您希望拥有2个以上的值,并且希望以您希望的方式将数据拆分到字典中,则可以使用此通用代码。 (它也适用于你的两个输入)

ls = list(map(int, input("Input: ").split(" ")))
iterator = iter(ls)
my_dict = {}
for val in iterator:
    my_dict[val] = next(iterator)
print(my_dict)

输出:

Input: 34 56 78 89
{34: 56, 78: 89}

但请确保输入中的奇数位置条目不会重复,否则您的密钥将被新值覆盖。

答案 1 :(得分:0)

使用itertools

如果你想在一行中完成。

import itertools
dict_value = dict(itertools.zip_longest(*[iter(list(map(int, input("").split(" "))))] * 2, fillvalue=""))

以简化的方式

import itertools
ls = list(map(int, input("").split(" ")))
dict_value = dict(itertools.zip_longest(*[iter(ls)] * 2, fillvalue=""))

如果您想知道listdict对话,请查看here