#python
#python
Вопрос:
У меня есть файл1
AX A1,A2 ZN 3
BP A1,A2,B Z 2
CLK I Z 1
Я хочу удалить последнее число из каждой строки, указав fout как
AX A1,A2 ZN
BP A1,A2,B Z
CLK I Z
Я пытался использовать sep
, но получал только первое или второе слово или третье слово до сентября.
sep =' '
l= line.split(sep, 3)[0]
Есть ли другой способ, которым я могу удалить последнюю цифру из каждой строки.
Комментарии:
1. Вам не нужно выбирать разделитель, используйте
rsplit(1)[0]
, и у вас будет то, что вы хотите2. Что должно произойти, если строка не заканчивается цифрой?
3. @anishtain4 ты имел в виду
rsplit(' ', 1)[0]
?4. @Tomerikoo Хорошая мысль, я забыл определить / пропустить разделитель. Ты прав.
Ответ №1:
Вы можете взять все, кроме последнего элемента, вот так:
l = line.split(sep)[:-1]
Решает ли это вашу проблему? Вот документация функции разделения. Это тоже может помочь.
Комментарии:
1. Вы имели в виду
sep.join(line.split(sep)[:-1])
? В настоящееl
время это список…2. @Tomerikoo да, ваш результат лучше, так как это снова строка. Я этого не писал, потому что думал, что достаточно просто показать способ удаления последнего элемента из строки.
Ответ №2:
Немного более эффективный способ, чем using split
, — это using partition
. Более конкретно, rpartition
. Это разбивает строку справа (один раз), возвращая кортеж формы (left, sep, right)
. Итак, в вашем случае:
l = line.rpartition(' ')[0]
Комментарии:
1. Используя приведенный выше код. Я печатаю только первые две строки. Я не печатаю последнюю строку.@ Tomerikoo
2. Я использовал измененный код, отредактированный в вопросе, можете ли вы, пожалуйста, проверить. но выводятся только 1-я и вторая строки. Не удается получить последнюю строку.@ Tomerikoo
3. @NEHACHOUDHARY вы можете быть более конкретными? Я получаю правильный вывод для заданных данных… Похоже, проблема связана с вашим циклом, а не с этой конкретной строкой…