2012-06-19 5 views
2

Я пытаюсь выяснить, как удалить первый символ слова в строке.Python: удалить первый символ каждого слова в строке

Моя программа читается в строке.

Пусть вход:

это демо

Мое намерение состоит в том, чтобы удалить первый символ каждого слова строки, то есть tid, оставляя his s emo.

Я попытался

  1. Использование for loop и пересекающий строку
  2. Проверка пространства в строку, используя isspace() function.
  3. Сохранение индекса письма, которое встречается после пространства, i = char + 1, где char - это индекс пространства.
  4. Затем, пытаясь удалить пустое пространство, используя str_replaced = str[i:].

Но удалили всю строку, кроме последнего.

ответ

0

попытка (питон 3,2)

import os 

s = '''this is a test of the... What? What is going on now? 
You guys are cu-rayzy! 
Morons!''' 

new_lines = [] 
lines=s.strip().split("\n") 
for line in lines: 
    new_words = [] 
    for word in line.strip().split(" "): 
     new_words.append(word[1:]) 
    new_lines.append(' '.join(new_words)) 
new_statement = "\n".join(new_lines) 

print (s) 

print (new_statement) 

Это заботится о новых линий, но не сохраняет пробелы, и полосы пространства спереди и в конце каждой строки.

+0

спасибо за помощь. любезно посоветуйте мне, как подойти к python, я хочу сказать, что сейчас хочу перейти в это поле, хотя я знаю, что это сложно .. – peterparker

+0

Напишите небольшие программы о вещах, которые вас интересуют с информацией, которую вы имеете. Это заставит вас заинтересоваться обучением, и вы узнаете все больше и больше. Продолжайте писать программы. –

+0

Кроме того, именно поэтому я написал простую программу на основе python, потому что регулярные выражения - это другой язык. –

4

Если входная строка может иметь не только пробелы, но также символы новой строки или вкладки, я бы использовал regex.

In [1]: inp = '''Suppose we have a 
    ...: multiline input...''' 

In [2]: import re 

In [3]: print re.sub(r'(?<=\b)\w', '', inp) 
uppose e ave 
ultiline nput... 
+0

спасибо lot..that был большой .. никогда не думал, что нам нужно использовать REGEX здесь – peterparker

+0

@ user1465544 Рад помочь, рассмотрим [принятие ответа] (http://meta.stackexchange.com/a/5235/181223), если он разрешил вашу проблему. Кроме того, если нет необходимости в сохранении правильного пробела или могут возникать только простые пробелы, то регулярное выражение не требуется, и вы можете использовать метод 'str.split()'. –

+0

Не могли бы вы объяснить мне, какие шаги он предпримет? Я изучаю этот язык на самом деле – peterparker

5

Смысл списка - ваш друг. Это самая основная версия, только в одной строке

str = "this is demo"; 
print " ".join([x[1:] for x in str.split(" ")]); 

output: 
his s emo 
+0

большое спасибо за помощь – peterparker

0

Вы можете просто использовать питона понимание

str = 'this is demo' 
mstr = ' '.join([s[1:] for s in str.split(' ')]) 

тогда mstr переменная содержит эти значения 'his s emo'

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