如何将用户输入的字符串更改为具有键和值的字典
How to change a string input by the user into a dictionary with a key and value
sentence = input ("give sentence")
user input = HELLO I LOVE PYTHON
我想把给出的句子改成格式,带变量sentence_dict
{1:HELLO, 2:I, 3:LOVE, 4:PYTHON}
使用split()
方法获取sentence
中的单词列表:
words = sentence.split()
然后使用 enumerate
内置函数构造一个生成器,将升序数字与列表中的单词相关联。默认情况下 enumerate
从 0 开始编号,但您希望它从 1 开始,因此将该值作为第二个参数传递:
numbered_words = enumerate(words, 1)
然后使用 dict
内置函数从该生成器的输出构造字典。幸运的是,生成器以与您要构建的内容相匹配的格式发出其 (number, word) 元组—— dict
通过使用元组中的第一项作为键,第二项作为值来构造字典:
sentence_dict = dict(numbered_words)
如果你想简洁一点,你可以把所有内容都塞到一行中:
sentence_dict = dict(enumerate(sentence.split(), 1))
enumerate
生成器是唯一棘手的部分。 enumerate
与 xrange
相似,因为它不是 return 序列,它 return 是一个可以从中提取序列的对象。为了演示那里发生了什么,您可以使用 for
循环从 enumerate
生成器中提取(数字,单词)对并打印它们:
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
sentence = input ("give sentence")
user input = HELLO I LOVE PYTHON
我想把给出的句子改成格式,带变量sentence_dict
{1:HELLO, 2:I, 3:LOVE, 4:PYTHON}
使用split()
方法获取sentence
中的单词列表:
words = sentence.split()
然后使用 enumerate
内置函数构造一个生成器,将升序数字与列表中的单词相关联。默认情况下 enumerate
从 0 开始编号,但您希望它从 1 开始,因此将该值作为第二个参数传递:
numbered_words = enumerate(words, 1)
然后使用 dict
内置函数从该生成器的输出构造字典。幸运的是,生成器以与您要构建的内容相匹配的格式发出其 (number, word) 元组—— dict
通过使用元组中的第一项作为键,第二项作为值来构造字典:
sentence_dict = dict(numbered_words)
如果你想简洁一点,你可以把所有内容都塞到一行中:
sentence_dict = dict(enumerate(sentence.split(), 1))
enumerate
生成器是唯一棘手的部分。 enumerate
与 xrange
相似,因为它不是 return 序列,它 return 是一个可以从中提取序列的对象。为了演示那里发生了什么,您可以使用 for
循环从 enumerate
生成器中提取(数字,单词)对并打印它们:
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