有沒有什麼辦法讓兩個用戶輸入之間有空格,並將第一個輸入轉換爲鍵,將第二個輸入轉換爲該鍵的對應值?我知道這可以用像這樣的清單來完成。將用戶輸入轉換爲python中的鍵值對
ls = list(map(int, input("").split(" ")))
是否有反正要從用戶的輸入,而不是將它們轉換爲列表,將它們轉換爲字典?
有沒有什麼辦法讓兩個用戶輸入之間有空格,並將第一個輸入轉換爲鍵,將第二個輸入轉換爲該鍵的對應值?我知道這可以用像這樣的清單來完成。將用戶輸入轉換爲python中的鍵值對
ls = list(map(int, input("").split(" ")))
是否有反正要從用戶的輸入,而不是將它們轉換爲列表,將它們轉換爲字典?
如果您希望有超過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}
但確保您輸入的奇姿項不重複,否則你的密鑰將使用一個新的被覆蓋值。
使用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
字符'D =字典(圖(INT,輸入( 「」)。 split(「」)))'我猜。 –
@cᴏʟᴅsᴘᴇᴇᴅ,它不會那樣工作。 – user1190882
@ user1190882對不起,我忘了地圖周圍的[..]。 –