文本合并-如何在Python中实现这一点?(R来源)

文本合并-如何在Python中实现这一点?(R来源),python,r,text,Python,R,Text,我尝试过几种方法,但都无法将其转换为Python,特别是因为我有以下错误: “str”对象不支持项分配 R可以使用以下代码执行相同的操作: f<-0 text<- c("foo", "btextr", "cool", "monsttex") for (i in 1:length(text)){ f[i]<-paste(text[i],text[i+1], sep = "_") } f 如果您能帮助我为Python做同样的事情,我将不胜感激。谢谢。在R中,您的输出将是(

我尝试过几种方法,但都无法将其转换为Python,特别是因为我有以下错误:

“str”对象不支持项分配

R可以使用以下代码执行相同的操作:

f<-0
text<- c("foo", "btextr", "cool", "monsttex")
for (i in 1:length(text)){
    f[i]<-paste(text[i],text[i+1], sep = "_")
}
f

如果您能帮助我为Python做同样的事情,我将不胜感激。谢谢。

在R中,您的输出将是(下次请在问题中添加此项):

在Python中。因此,您需要创建新字符串,例如:

new_strings = []
text = ['foo', 'btextr', 'cool', 'monsttex']
for i,t in enumerate(text):
  try: 
    new_strings.append(text[i] + '_' + text[i+1])
  except IndexError:
    new_strings.append(text[i] + '_NA')
其结果是:

>>> new_strings
['foo_btextr', 'btextr_cool', 'cool_monsttex', 'monsttex_NA']
这项工作:

>>> from itertools import zip_longest
>>>
>>> f = ['foo', 'btextr', 'cool', 'monsttex']
>>>
>>> ['_'.join(i) for i in zip_longest(f, f[1:], fillvalue='NA')]
['foo_btextr', 'btextr_cool', 'cool_monsttex', 'monsttex_NA']

您能添加一些示例输入、所需输出、算法解释和解决方法吗?所以这不是一个编码服务。
“'.join(iterable)
我添加了OPs ScriptAzing的输出,非常感谢Bernie。这个问题困扰了我一整天!非常有用的答案。
>>> new_strings
['foo_btextr', 'btextr_cool', 'cool_monsttex', 'monsttex_NA']
>>> from itertools import zip_longest
>>>
>>> f = ['foo', 'btextr', 'cool', 'monsttex']
>>>
>>> ['_'.join(i) for i in zip_longest(f, f[1:], fillvalue='NA')]
['foo_btextr', 'btextr_cool', 'cool_monsttex', 'monsttex_NA']