【发布时间】:2012-11-28 04:50:36
【问题描述】:
我有以下字符串:
>>>sentence='No, I shouldn't be glad, YOU should be glad.'
而我想要的是制作一个字典,以句子中的一个词为键,下一个词为值。
>>>dict(sentence)
{('No,'): ['I'], ('I'): ['shouldn't'], ('shouldn't'): ['be'], ('be'): ['glad,', 'glad.'], ('glad,'): ['YOU'], ('YOU'): ['should'], ('should'): ['be']}
^ ^ ^
| | |
正如你所见,如果一个词在一个句子中出现多次,它就会得到多个值。如果它是最后一个单词,它将不会被添加到字典中。 'glad' 不会获得多个值,因为单词以 ',' 或 '.' 结尾这使它成为一个不同的字符串。
【问题讨论】:
-
那么这里的预期输出是什么?
-
太好了,你试过什么?你遇到了什么问题?
-
喜剧单行答案:
print (lambda words: {key: value for key, value in {word:[nextWord for curWord, nextWord in zip(words, words[1:]) if curWord == word] for word in set(words)}.iteritems() if len(value) > 0})("No, I shouldn't be glad, YOU should be glad.".split())(仅在全球换行短缺危机的情况下使用)
标签: python string dictionary add