2017-10-17 74 views
0

有沒有什麼辦法讓兩個用戶輸入之間有空格,並將第一個輸入轉換爲鍵,將第二個輸入轉換爲該鍵的對應值?我知道這可以用像這樣的清單來完成。將用戶輸入轉換爲python中的鍵值對

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

是否有反正要從用戶的輸入,而不是將它們轉換爲列表,將它們轉換爲字典?

+0

字符'D =字典(圖(INT,輸入( 「」)。 split(「」)))'我猜。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅ,它不會那樣工作。 – user1190882

+0

@ user1190882對不起,我忘了地圖周圍的[..]。 –

回答

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} 

但確保您輸入的奇姿項不重複,否則你的密鑰將使用一個新的被覆蓋值。

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

相關問題