有没有办法让2个用户输入它们之间有空格并将第一个输入转换为键,第二个输入转换为该键的相应值?我知道这可以用这样的列表来完成。
ls = list(map(int, input("").split(" ")))
无论如何从用户那里获取输入而不是将它们转换为列表,将它们转换为字典?
答案 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=""))
如果您想知道list
至dict
对话,请查看here