Python 字符串串联行为疯狂
我正在尝试将.txt列表中的每个单词连接到字符串,例如{'word'+str1='word1'} 使用此代码: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
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'。