Python 字符串串联行为疯狂

Python 字符串串联行为疯狂,python,concatenation,string-concatenation,Python,Concatenation,String Concatenation,我正在尝试将.txt列表中的每个单词连接到字符串,例如{'word'+str1='word1'} 使用此代码: def function(item): for i in range(2): print item + str(i) with open('dump/test.txt') as f: for line in f: function(str(line)) 我将使用一个只包含两个单词“this”、“that”的txt文件。 我得到的是: this 0 this

我正在尝试将.txt列表中的每个单词连接到字符串,例如{'word'+str1='word1'} 使用此代码:

def function(item):
  for i in range(2):
    print item + str(i)

with open('dump/test.txt') as f:
  for line in f:
    function(str(line))
我将使用一个只包含两个单词“this”、“that”的txt文件。 我得到的是:

this
0
this
1
that0
that1
我所期待的是:

this0
this1
that0
that1
如果我只使用函数'this'和函数'that'就可以了,但为什么它不能和txt输入一起工作呢

--编辑: 解决了,谢谢! 问题是由

接收到的字符串中的换行符

解决方案:请参见答案,您应该更改

print item + str(i)

这将删除函数中接收的字符串中的任何换行符

还有几个其他提示:

打印数据的更好方法是使用.format方法,例如,在您的情况下:

print '{}{}'.format(item.strip(), i)
如果您有更复杂的任务,此方法非常灵活

从文件中读取的所有行都是字符串-您不必对它们调用str

你应该改变

print item + str(i)

这将删除函数中接收的字符串中的任何换行符

还有几个其他提示:

打印数据的更好方法是使用.format方法,例如,在您的情况下:

print '{}{}'.format(item.strip(), i)
如果您有更复杂的任务,此方法非常灵活

从文件中读取的所有行都是字符串-您不必对它们调用str


python读取的第一行是this\n,当您将0和1追加到此行时,将得到this\n0和this\n1。然而,如果在第二行中,您在文件末尾没有新的一行,这是从打印得到的信息推断出来的。因此,附加对它来说很有效

要从字符串右端删除\n,应使用rstrip'\n'


python读取的第一行是this\n,当您将0和1追加到此行时,将得到this\n0和this\n1。然而,如果在第二行中,您在文件末尾没有新的一行,这是从打印得到的信息推断出来的。因此,附加对它来说很有效

要从字符串右端删除\n,应使用rstrip'\n'


在第一个示例中,这是\n存在的,这就是为什么您会得到未格式化的输出。删除新行字符后传递参数

在第一个示例中,这是\n这就是为什么您会得到未格式化的输出。删除新行字符后传递参数

我会更具体地使用item.rstrip'\n'。我会更具体地使用item.rstrip'\n'。我会更具体地使用item.rstrip'\n'。我会更具体地使用item.rstrip'\n'。