Удалить последнее число из строк

#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 вы можете быть более конкретными? Я получаю правильный вывод для заданных данных… Похоже, проблема связана с вашим циклом, а не с этой конкретной строкой…