Python 如何将用户输入的字符串更改为具有键和值的字典

Python 如何将用户输入的字符串更改为具有键和值的字典,python,string,dictionary,sentence,Python,String,Dictionary,Sentence,我希望将给定的句子更改为格式,并使用变量句子\u dict sentence = input ("give sentence") user input = HELLO I LOVE PYTHON 使用split() {1:HELLO, 2:I, 3:LOVE, 4:PYTHON} 然后使用enumerate内置函数构造一个生成器,将升序数字与列表中的单词相关联。默认情况下,enumerate的编号从0开始,但您希望它从1开始,因此将该值作为第二个参数传递: words = sente

我希望将给定的句子更改为格式,并使用变量
句子\u dict

sentence = input ("give sentence")    
user input = HELLO I LOVE PYTHON
使用
split()

{1:HELLO, 2:I, 3:LOVE, 4:PYTHON}
然后使用
enumerate
内置函数构造一个生成器,将升序数字与列表中的单词相关联。默认情况下,
enumerate
的编号从0开始,但您希望它从1开始,因此将该值作为第二个参数传递:

words = sentence.split()
然后使用
dict
内置函数从该生成器的输出构建字典。幸运的是,生成器以与您试图构建的内容相匹配的格式发出其(数字、单词)元组--
dict
使用元组中的第一项作为键,第二项作为值来构造字典:

numbered_words = enumerate(words, 1)
如果您想简洁,可以将所有内容塞进一行:

sentence_dict = dict(numbered_words)
枚举
生成器是唯一棘手的部分
enumerate
xrange
类似,它不返回序列,而是返回可以从中提取序列的对象。为了演示那里发生了什么,您可以使用
for
循环从
枚举
生成器中提取(数字、单词)对并打印它们:

sentence_dict = dict(enumerate(sentence.split(), 1))
这表明:

for num, word in enumerate(['a', 'b', 'c', 'd'], 57):
    print 'num is', num, 'and word is', word

谢谢你的帮助谢谢你的帮助
num is 57 and word is a
num is 58 and word is b
num is 59 and word is c
num is 60 and word is d