我想要一个函数,它接受一个字符串(而不是向量)并反转该字符串中的单词。比如说
rev_sentence("hi i'm five") ## [1] "five i'm hi"
我有一个函数,可以反转单个字符,但不能反转字符串,本质上是一个句子。
fnatzsnv1#
在R中,我们可以使用strsplit在一个或多个空格处拆分,然后反转元素和paste一起
R
strsplit
paste
sapply(strsplit(str1, "\\s+"), function(x) paste(rev(x), collapse=" ")) #[1] "five i'm hi"
如果只有一个字符串,则
paste(rev(strsplit(str1, "\\s+")[[1]]), collapse= " ") #[1] "five i'm hi"
在Python中,选项是在反转后选择split和join([::-1])
Python
split
join
[::-1]
" ".join("hi i'm five".split()[::-1]) #"five i'm hi"
或者使用reversed
reversed
" ".join(reversed("hi i'm five".split())) #"five i'm hi"
str1 <- "hi i'm five"
m1m5dgzv2#
下面是一个类似的答案,但使用的是tidyverse函数:
tidyverse
x <- paste("hi i'm", c("five", "six", "seven")) library(stringr) purrr::map_chr(x, ~ str_flatten(rev(str_split_1(.x, "\\s")), " ")) # "five i'm hi" "six i'm hi" "seven i'm hi"
2条答案
按热度按时间fnatzsnv1#
在
R
中,我们可以使用strsplit
在一个或多个空格处拆分,然后反转元素和paste
一起如果只有一个字符串,则
在
Python
中,选项是在反转后选择split
和join
([::-1]
)或者使用
reversed
数据
m1m5dgzv2#
下面是一个类似的答案,但使用的是
tidyverse
函数: