我正在尝试捕获特定单词之后的句子。每个句子在我的代码中都是不同的,这些句子不必一定要用这个特定的单词来分隔。如果没有出现这个词,我只需要空白字符串或列表。
示例1:工作
my_string="Python is a amazing programming language"
print(my_string.split("amazing",1)[1])
programming language
示例2:
my_string="Java is also a programming language."
print(my_string.split("amazing",1)[1]) # amazing word doesn't appear in the sentence.
Error: IndexError: list index out of range
需要的输出:空字符串或列表..etc。
我尝试了类似的方法,但是仍然失败。
my_string.split("amazing",1)[1] if my_string.split("amazing",1)[1] == None else my_string.split("amazing",1)[1]
答案 0 :(得分:0)
您在这里有一些选择。您可以拆分并检查结果:
tmp = my_string.split("amazing", 1)
result = tmp[1] if len(tmp) > 1 else ''
或者您可以预先检查收容措施:
result = my_string.split("amazing", 1)[1] if 'amazing' in my_string else ''
如果大多数句子都具有匹配项,则第一种选择更为有效;如果大多数句子没有匹配项,则第二种选择更为有效。
另一个类似于第一个的选项是
result = my_string.split("amazing", 1)[-1]
if result == my_string:
result = ''
在所有情况下,请考虑做等同于
的事情result = result.lstrip()
答案 1 :(得分:0)
使用.split()
参数时,可以使用整数或切片指定要使用的列表部分。如果要检查字符串中的特定单词,可以执行以下操作:
my_str = "Python is cool"
my_str_list = my_str.split()
if 'cool' in my_str_list:
print(my_str)`
output:
"Python is cool"
否则,您可以在字符串列表中运行for循环,以检查它是否在多个字符串中找到该单词。
答案 2 :(得分:-1)
而不是调用索引1,而是调用索引-1。这将调用列表中的最后一项。
library(shiny); library(shinyjs); library(shinyWidgets)
jscode <- "shinyjs.play = function() {$('.slider-animate-button').trigger('click');}"
ui <- fluidPage(useShinyjs(), extendShinyjs(text = jscode),
tags$head(tags$style(HTML('.irs-from, .irs-to, .irs-min, .irs-max, .irs-grid-text, .irs-grid-pol, .irs-slider {visibility:hidden !important;}'))),
h3("countdown"),
sliderInput("countdown", label = "", width = '300px',min = 0, max = 10,value = 0, step = 0.1, post="secs",
animate = animationOptions(interval = 50, playButton = "", pauseButton = "")),
actionButton("start", "start"))
server <- function(input, output,session) {
disable("slider")
observeEvent(input$start, priority=10, {js$play()})
}
shinyApp(ui, server)
返回“编程语言”。