Найти - Пользователи
Полная версия: Программирование пайтон
Начало » Python для новичков » Программирование пайтон
1 2
Dima_Vlasov
Добрый вечер!
У меня возникла проблема с написанием программы. ее цель вывести каждое слово исходного текста один раз, независимо от того сколько раз слово употребляется в тексте.
Не могли бы вы помочь мне в написании программы?
ajib6ept
text = 'слово1 слово2 слово2 слово3'
words = list(set(text.split(' ')))
for word in words:
    print word
py.user.next
>>> s = 'one two three four one two three five'
>>> 
>>> ws = set()
>>> 
>>> lst = [w for w in s.split()
...        if w not in ws and ws.add(w) is None]
>>> lst
['one', 'two', 'three', 'four', 'five']
>>>
Singularity
py.user.next
зачем проверить нет ли в множестве этого элемента?
Тогда можно просто list
Dima_Vlasov
а если текст задан файлом txt?
f=open('text.txt','r')
s=f.read()
f.close
a=“”“”“”
for i in s:
if i=='.' or i==',' or i==';' or i==':' or i=='"' or i=='-' or i=='?' or i=='!':
pass
else:
a+=i
вот после этого я пытаюсь сделать выполнение программы,и результат вывести на экран.
я убираю знаки из текста,а после идет сортировка
valentjedi
Dima_Vlasov
Можно так:
from string import punctuation as punct
import re
with open('text.txt', 'r') as infile:
    words = list(set(re.split('[{}]\s+'.format(punct), infile.read())))
    for word in words:
        print(word)

В Python 2.* вместо print(word) надо print word
GreyZmeem
valentjedi

Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Test')
Test
>>>
ActivePython 2.7.5.6 (ActiveState Software Inc.) based on
Python 2.7.5 (default, Sep 16 2013, 23:16:52) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Test')
Test
>>>
Тут объсняется почему это работает в python 2
py.user.next
Singularity
зачем проверить нет ли в множестве этого элемента?
слова выбираются в том же порядке, в котором стоят в тексте

Singularity
Тогда можно просто list
это если порядок не важен
Dima_Vlasov
valentjedi
Dima_VlasovМожно так:
ругается на нулевую длину имени в поле
Dima_Vlasov
Dima_Vlasov
а если текст задан файлом txt?f=open('text.txt','r')s=f.read()f.closea=“”“”“”for i in s: if i=='.' or i==',' or i==';' or i==':' or i=='"' or i=='-' or i=='?' or i=='!': pass else: a+=iвот после этого я пытаюсь сделать выполнение программы,и результат вывести на экран.я убираю знаки из текста,а после идет сортировка
а как можно сделать чтобы после написанной мной части программы сразу шла сортировка? предложенные варианты не работают, выходят ошибки
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB