编辑代码是显示原始句子/列表中第二个输入变量的位置,如果输入第二个输入,它总是返回13
我的代码需要有一个用户输入,然后转换为一个列表。我完成了那部分。我需要获取第二个用户输入的帮助,然后查找第二个用户输入是否在第一个用户输入的句子中。我正在处理的代码如下:
sent = str(input("Sentence:"))
sent.split()
lkupwrd = str(input("What word do you want to look up?"))
print (sent.index(lkupwrd))
答案 0 :(得分:1)
使用分割功能的输出。要获取所有出现的lookupword列表,您可以使用列表推导。有关详细信息,请访问:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions
sent = str(input("Sentence:"))
sent = sent.split(' ')
lkupwrd = str(input("What word do you want to look up?"))
if lkupwrd in sent:
print 'The word is in the sentence'
print [i for i in range(len(sent)) if sent[i] == lkupwrd]
else:
print 'The word is not in the sentence
答案 1 :(得分:0)
sent.split()
split()
方法返回列表。您需要将返回值分配给变量才能使用它。该方法不会修改字符串对象。
sent = sent.split()
但是,我建议为str对象和列表对象使用不同的变量名。我发现它可以更容易地跟踪名称的含义以及对它们有效的操作。
答案 2 :(得分:0)
您可以使用in
:
sent = input("Sentence:").split()
lkupwrd = str(input("What word do you want to look up?")).lower()
wordList = [word.lower() for word in sent]
if lkupwrd in wordList:
print([i for i,j in enumerate(wordList) if j == lkupwrd])
您无需在str
上使用sent
,因为input()
无论如何都会转换为str
。
更多信息:list comprehensions,input()
,enumerate()
,lower()
修改强>
这是enumerate()
的简单示例:
myList = ["a","b","c","d","e"]
myListEnumerated = enumerate(myList)
print(list(myListEnumerated))
输出:
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]
如您所见,您可以使用enumerate()
查找每个元素的索引。上面代码中的i
和j
对应于列表中每个元素的索引和值。
答案 3 :(得分:0)
这对您有何帮助:
s = input("Sentence: ")
l = input("What word do you want to look up? ")
w = s.split()
if l in w:
print "found @ {}".format(s.index(l))
else:
print "not found"
<强>更新强>
如果您希望它不区分大小写,请将两行更改为:
w = s.lower().split()
和
if l.lower() in w:
答案 4 :(得分:0)
您的代码中有一些冗余步骤。看看以下是否有效,
Sub CreateDailyEmail()
Dim oApp As Object
Dim oMail As Object
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)
With oMail
.To = Range("EMAIL_TO")
.Cc = Range("EMAIL_CC")
.Subject = Range("EMAIL_SUBJECT")
.Attachments.Add (Range("PATH"))
.HTMLBody = "<body style=""font-family: Calibri; font-size: 14px; color: #00f; line-height: 1;""><br />" & RangetoHTML(ActiveWorkbook.Worksheets("Daily").Range("B6:H65")) & "</body" & .HTMLBody
.Display
End With
Set oMail = Nothing
Set oApp = Nothing
End Sub
无需sentence = input("Sentence: ")
word = input("Word: ")
if word in sentence:
print(sentence.index(word))
到列表中。但是如果你这样做,代码仍然有用。