удаление \ n в словаре - PullRequest
       4

удаление \ n в словаре

0 голосов
/ 27 ноября 2018

У меня проблема с удалением \ 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']} 

проблема в том, что когда я звоню детям ["Patricia"], я получаю [], потому что он распознает только детей ["Patricia \ n"]

Ответы [ 3 ]

0 голосов
/ 27 ноября 2018

Вызов strip() сам по себе не меняет первоначальное значение.Вам сначала нужно будет присвоить переменную или использовать ее при создании словаря.

Убедитесь, что следующий фрагмент решает вашу проблему

with open(filename) as f:
    for line in f.readlines():
        parent, child = line.split(",")
            children[child.strip()].append(parent.strip())
0 голосов
/ 27 ноября 2018

На самом деле, вы были довольно близко.Строки являются неизменяемыми и, следовательно, вызов strip() вернет новую строку, оставив исходную нетронутой.

Так что замена

parent.strip()
child.strip()

на

parent = parent.strip()
child = child.strip()

сделаеттрюк.

0 голосов
/ 27 ноября 2018

Пожалуйста, используйте strip перед split:

parent, child = line.rstrip("\n").split(",")

Ошибка: parent.strip() необходимо переназначить строку, так как строки являются неизменяемыми.

...