考虑以下代表制表符分隔的 txt 文件中一行的字符串:
line = 'pf\t2\t0\t9\t0\t9\t9\n'
我想使用下划线连接该字符串的前两个元素,然后将该行写回文件。我正在使用以下简单脚本来执行此操作:
newLabel = '_'.join(line.split('\t')[:2])
newLine = line.split('\t')
newLine[:2] = newLabel
我期望的是以下内容:
['pf_2', '0', '9', '0', '9', '9\n']
相反,我得到:
['p', 'f', '_', '2', '0', '9', '0', '9', '9\n']
也许我在这里遗漏了一些明显的东西,但为什么 python 再次拆分连接的字符串?实现我想要的最好方法是什么? 谢谢!
请您参考如下方法:
您可能正在寻找稍微不同的赋值语句:
newLine[:2] = [newLabel]
切片分配只需要在右侧有一个可迭代对象。由于 newLabel 是一个字符串,是 一个可迭代对象,因此切片赋值会愉快地进行并对其进行迭代,添加这些元素来代替 newLine[:2]。
您也可以考虑这个快捷方式:
>>> line.replace('\t', '_', 1)
'pf_2\t0\t9\t0\t9\t9\n'
使用 str.replace 的第三个参数指定要替换的出现次数。
