2016-06-17 62 views
-2

我需要帮助试图把输入的字符串转换成字典Python的 - 将一个字符串转换成字典

输入:

Hello my name is Bob Hello Hello 

实际输出:

所需的输出:

{'Hello' : '1', 'my' : '2', 'name' : '3', 'is' : '4', 'Bob' : '5'} 

应该只记录同一个词一度

我迄今为止代码:

s = input("input sentence: ") 
    file = open("Original.txt", 'w') 
    file.write(s) 
    file.write("\n") 
    file.close() 
    num = int(1,2,3,4,5) 
    dictionary = dict(num(s.split())) 
    file = open("Dictionary.txt", 'a') 
    file.write(dictionary) 
    file.close() 
    f = open("Dictionary.txt", 'r') 
    print(file.read) 
    print(s) 
+1

试试这个:http://stackoverflow.com/questions/988228/converting-a-string-to-dictionary – Nikita

+1

1.什么是你到目前为止的代码做什么,以及如何从您的期望有所不同; 2.有什么可笑的评论? – jonrsharpe

+0

我需要它,因此字典中的数字没有输入 –

回答

0

下面的代码拆分句子转化成单词并将其放入一个dcitionary在你想要的方式。

>>> string = 'Hello my name is bob' 
>>> string = {v: k for k ,v in enumerate(string.split(), start=1)} 
>>> string 
{'bob': 5, 'is': 4, 'my': 2, 'Hello': 1, 'name': 3} 
>>> 
+0

号如果输入的是'你好,我的名字是鲍勃你好Hello',这将返回' {'Bob':5,'Hello':7,'is':4,'my':2,'name':3}'。因为它会更新'“Hello”:1',首先使用'“Hello”:6',然后使用'“Hello”:7'。 –

+0

@emre。即基于OP的未定义行为,如果应该保留该词的第一次出现,则从未指定该行为。 –

+0

@Tadhg McDonald-Jensen OP表示希望的输出是'{'Hello':1,'my':2,'name':3,'is':4,'Bob':5} 'Hello':7,'my':2,'name':3,'is':4,'Bob':5}'这不是所需的输出。 –