我有一个通过Input语句创建的单词列表: 短语=输入(请输入短语:)我的名字是我的名字
WordsUsed = ["My","Name","Is"]
indexOfWords=[0 1 2 ]
然后我通过枚举短语列表并附加用于创建原始短语的所有单词来创建一个UsedWords列表(见下文)。
Phrase = ["My", "Name", "Is", "My", "Name", "Is"]
WordsUsed = ["My","Name","Is"]
NewPhrase = [0, 1, 2, 0, 1, 2]
然后我使用内置in方法将每个字母的索引(在WordsUsed列表中)存储到名为indexOfWords的新列表中。
所以,我现在要做的是在短语列表中重新创建原始短语,但将其替换为WordsUsed列表中Word的索引。例如:
d={j:i for i,j in enumerate(set(Phrase))}
[d[i] for i in Phrase]
我按照Kasra的建议尝试了以下内容:
{{1}}
但是,这会为短语返回以下输出: 短语= ["我的#34;,"名称","是","我","姓名",&# 34;是"]输出[2,1,0,2,1,0] 我相信它正在输出列表lexicographicaly。实际输出应为[0,1,2,0,1,2]
有没有人对如何克服这个问题有任何想法。
干杯
答案 0 :(得分:3)
尝试:
["My", "Name", "Is", "My", "Name", "Is"]
鉴于[0, 1, 2, 0, 1, 2]
,您将获得["My", "Name", "My", "My", "Name"]
。
鉴于[0, 1, 0, 0, 1]
,您将获得{{1}}。
希望这是更可读和更紧凑的答案。