簡體   English   中英

如何在字典中使用空格分隔的輸入,並將每個新輸入與新鍵值存儲在一起?

[英]How to take space separated input in dictionary with every new input stored against a new key value?

如何用由空格分隔的單詞組成的字符串創建字典,其中i for i in range(0, n)作為字典中的鍵?

試過這個:

i = 0
map(dic[i+=1],input().split())

沒用

它應該輸出以下內容:

dic={0:'apple',1:'grapes',2:'orange',3:'banana'}
input_str = "Hello world"
result = {key: value for key, value in enumerate(input_str.split())}
print(result)

輸出:

{0:“你好”,1:“世界”}

但是您可以使用list因為此數據結構用於迭代其內容並保持順序。 如果您想要一個int作為鍵,只需使用enumerate(your_list)

在Python中,何時使用字典,列表或集合?

您可以使用enumerate

d = {}
for i, v in enumerate(input().split()):
    d[i] = v

或者簡單地:

d = dict(enumerate(input().split()))

但是為什么呢? 使用list ...

由於您的鍵只是簡單的(有序的!)整數,因此使用dict似乎對於從列表訪問整數索引值來說也是一個過大的殺傷力,它也是O(1) 例如,讓我們看一下兩個版本的一個小比較:

l = input().split()
d = dict(enumerate(l))

我們有:

>>> print(l)
['apple', 'orange', 'banana']
>>> print(d)
{0: 'apple', 1: 'orange', 2: 'banana'}

現在讓我們看看如何獲​​取值:

>>> l[0]
'apple'
>>> d[0]
'apple'
>>> l[2]
'banana'
>>> d[2]
'banana'

字典的內存開銷很小,因此在這種情況下使用字典不會帶來任何好處。

input_ = input("enter your fruits:").split(' ')

print (dict(zip([*range(len(input_))], input_)))
# print (dict(enumerate(input_)))

輸出:

enter your fruits:banana kiwi orange apple
{0: 'banana', 1: 'kiwi', 2: 'orange', 3: 'apple'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM