我在程序中删除\ n时遇到问题,这里是代码
with open(filename) as f:
for line in f.readlines():
parent, child = line.split(",")
parent.strip()
child.strip()
children[child].append(parent)
尝试使用.rstrip和其他变体,但对我没有任何作用,这是我得到的结果
{'Patricia\n': ['Mary'], 'Lisa\n': ['Mary']}
问题是当我叫children [“ Patricia \]”时我得到[],因为它只能识别孩子[[Patricia \ n“]
答案 0 :(得分:8)
实际上,您距离很近。字符串是不可变的,因此调用strip()
会返回一个新字符串,同时保留原来的字符串。
所以替换
parent.strip()
child.strip()
使用
parent = parent.strip()
child = child.strip()
可以解决问题。
答案 1 :(得分:5)
请在strip
前使用split
:
parent, child = line.rstrip("\n").split(",")
问题是:parent.strip()
需要重新分配给字符串,因为字符串是不可变的。
答案 2 :(得分:2)
单独调用strip()
不会更改原始值。您将需要首先分配一个变量或在字典创建中使用它。
看看下面的代码片段是否可以解决您的问题
with open(filename) as f:
for line in f.readlines():
parent, child = line.split(",")
children[child.strip()].append(parent.strip())