2014-10-14 2 views
-1

В задании говорится: напишите программу Python, которая читается в предложении. Программа преобразует строку (которую пользователь вводит) в список и печатает предложение в виде списка строковых объектов. Затем программа использует цикл для удаления любой препинания (которая появляется в списке препинания) из списка. Наконец, программа преобразует список в строку и печатает предложение без пунктуации. В вашу программу необходимо скопировать следующий список препинания:Как удалить дублирующий элемент в списке?

punctuation = ['(', ')', '?', ':', ';', ',', '.', '!' , «/», «"»,«'»," "]

Примечание: Используйте метод присоединиться в классе ул, чтобы преобразовать список в строку

Так что я в основном получили все это. вниз, это мой код:

#punctuation list 
punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'", " "] 

#make an empty list for string to list 
converted_list = [] 
import copy 
#tell user to input a sentence 
sentence = str(input("Type in a line of text: ")) 

#Convert str to list 
for char in sentence: 
    converted_list.append(char) 
    newlist = copy.deepcopy(converted_list) 
    #remove punctuation from this list 
    for character in newlist: 
     if (character in punctuation): 
      newlist.remove(character) 
      newline = "".join(newlist) 


print(converted_list) 
print(newline) 

Но проблема в том, мои выходные шоу:

Type in a line of text: Hey! Where are you? 
['H', 'e', 'y', '!', ' ', 'W', 'h', 'e', 'r', 'e', ' ', 'a', 'r', 'e', ' ', 'y', 'o', 'u', '?'] 
HeyWhereare you 

Это удаление только первого символа «пробела». Как бы удалить второе «пространство» после «есть»?

+0

Ваш отступы правильно? Кажется, что все, начиная с 'newlist = ...', не должно быть для меня незаменимым. – Blckknght

+0

все равно дает мне тот же вход:/ – pythonnub

+0

Когда-либо слышал о re-python-библиотеке для регулярного выражения? Особенно метод re.replace()? –

ответ

-3

Для удаления пробелов в строке мы можем использовать ключевое слово nospace. Например:

str1 = "TH ABC 123"

str1sp = nospace (srt1)

печати (str1sp)

ANS:

THABC123

+0

В Python нет 'nospace'. – Matthias

0

Try держать это максимально возможно:

#punctuation list 
punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'", " "] 

#make an empty list for string to list 
converted_list = [] 
#tell user to input a sentence 
sentence = str(input("Type in a line of text: ")) 

#Convert str to list 
for char in sentence: 
    if char not in punctuation: 
     converted_list.append(char) 

print(converted_list) 
print("".join(converted_list)) 

выход будет:

Type in a line of text: "Hey! Where are you?" 
['H', 'e', 'y', 'W', 'h', 'e', 'r', 'e', 'a', 'r', 'e', 'y', 'o', 'u'] 
HeyWhereareyou 
+0

omg большое спасибо! да, это кажется намного чище и намного проще читать – pythonnub

0

Попробуйте

sentence = str(input("Type in a line of text: ") 
punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'", " "] 
converted_list = [char for char in sentence if char not in punctuation] 
print(converted_list) 
Смежные вопросы