在python中将Array position中的String转换为position并返回顺序

Converting String in Array position into position and return the order in python

提问人:D. Forrester 提问时间:2/18/2017 最后编辑:glennslD. Forrester 更新时间:10/18/2017 访问量:48

问:

我一直在研究列表和数组。在这个任务中,我需要(按顺序)返回句子,但不是按顺序返回句子,而是需要返回单词所在的位置,所以这是我当前的代码:

sentence = "Hello my name is Daniel, hello Daniel"
sentence = sentence.upper()
sentence = sentence.split()
list = sentence

返回:

['HELLO', 'MY', 'NAME', 'IS', 'DANIEL,', 'HELLO', 'DANIEL']

但期望的结果是:

[0, 1, 2, 3, 4, 0, 4]

有谁知道我如何通过添加更多代码从给定的代码中获得此结果?

评论

0赞 mgilson 2/18/2017
在您的模型中,和 都由 表示。你需要去掉标点符号吗?'DANIEL,''DANIEL'4
0赞 D. Forrester 2/18/2017
@mgilson在这种情况下,标点符号不会影响结果,因此“Daniel”和“Daniel”被视为相同,并且应返回相同的位置

答:

2赞 McGrady 2/18/2017 #1

看来你不想得到,所以你应该替换逗号或删除它。然后使用 index 方法返回列表中出现的 obj 的最低索引。DanielDaniel,

sentence = "Hello my name is Daniel, hello Daniel"
sentence = sentence.replace(',','').upper()
sentence = sentence.split()


print [sentence.index(i) for i in sentence]

它回来了

[0, 1, 2, 3, 4, 0, 4]

评论

0赞 D. Forrester 2/18/2017
谢谢!!!如果变量“sentence”是用户输入的句子,此方法是否有效?
0赞 McGrady 2/18/2017
@D.Forrester:是的。如果这有帮助,请接受这个答案。
0赞 D. Forrester 2/18/2017
sentence = sentence.replace(“,”,'“',”'“).upper() AttributeError: 'list' 对象没有属性 'replace' 当我将句子变成用户输入的变量时,发生了此错误。你知道为什么吗?@McGrady
0赞 McGrady 2/18/2017
@D.Forrester 确保是一个字符串,然后使用 method。要以字符串形式获取输入,您应该在 Python2 或 Python3 中使用。sentencesplit()raw_inputinput