2015-04-16 6 views
0

Это от a previous question.Как отредактировать элементы в списке

Я загрузил список слов в Python, но есть проблема. Например, когда я получаю доступ к 21-му элементу в wordlist, я должен получить "ABACK". Вместо этого я получаю:

wordlist[21] 
"'ABACK\\n'," 

Таким образом, для каждого слова в wordlist мне нужно обрезать "'" с передней и "\\n'," от задней части каждой строки в wordlist. Я пробовал разные строковые методы, но еще не нашел того, что работает.

+2

'wordlist [21] = wordlist [21] [1: -4]'? – jonrsharpe

+0

@PeterWood отмечает, что '' \\ n'' является буквальной обратной косой чертой, а затем «n», а не новой линией. – jonrsharpe

+0

Вы загружаете данные в список слов из файла? потому что символ новой строки добавляется к строке, если да, тогда вы можете указать, как вы загружаете список слов. –

ответ

0
wordlist = [ e [1:-4] for e in wordlist] 

Это делает трюк. Предоставлено всем, кто прокомментировал выше и аналогичную должность.

0

Поскольку перед \ n существует обратная косая черта, простая полоса не работает, если вы хотите ее удалить. Вы можете сделать это:

wordlist = [word.strip("'").strip().split("\\n")[0] for word in wordlist] 

Дополнительная полоса, если у вас на самом деле есть \ n, чтобы избавиться. Или вы можете сделать слово [1: -4], как предположил @jonrsharpe.

0

Если это общее для каждого слова в списке, вы можете использовать функции lstrip() и rstrip().

for word in wordlist: 
    word.lstrip("'").rstrip("\\n',") 
+0

Я думал об этом, но что, если само слово заканчивается на '' n''? – jonrsharpe

+0

Что бы вы ни выбрали, вы можете перейти к функции, в этом случае это будет word.rstrip ('n'). И если вы спрашиваете о '\ n' charachter, вы можете указать строку с r '' (это подавляет значение \, поэтому вы можете указать без этих \\, например word.rstrip (r '\ n'), тот же эффект, что и word.rstrip ('\\ n')). Это отвечает на ваш вопрос или вы спрашиваете что-то еще ...? – shaktimaan

+0

Нет, я имею в виду, что ваш текущий подход разделил бы '' n'' **, но не должен **. Попробуйте, например. ' "Запустить \\ п ' "rstrip (" \\ п'")'. Я не думаю, что вы полностью понимаете, что такое 'str. [L/r] strip'. – jonrsharpe

Смежные вопросы