Найти - Пользователи
Полная версия: Проблема с содержимым list
Начало » Python для новичков » Проблема с содержимым list
1
Vivernlie
Ниже приведено (мое) решение одной маленькой задачи

 fname = raw_input("Enter file name: ")
if fname == "":
    fh = open('romeo.txt')
else:
    fh = open(fname)
lst = list()
for line in fh:
    junk = line.split()
    for w in junk:
        lst.append(w)
        lst.sort()
print lst   

На выходе получаю лист:
 ['Arise', 'But', 'It', 'Juliet', 'Who', 'already', 'and', 'and', 'and', 'breaks', 'east', 'envious', 'fair', 'grief', 'is', 'is', 'is', 'kill', 'light', 'moon', 'pale', 'sick', 'soft', 'sun', 'sun', 'the', 'the', 'the', 'through', 'what', 'window', 'with', 'yonder']

Но результат должен выглядеть вот так:
 ['Arise', 'But', 'It', 'Juliet', 'Who', 'already', 'and', 'breaks', 'east', 'envious', 'fair', 'grief', 'is', 'kill', 'light', 'moon', 'pale', 'sick', 'soft', 'sun', 'the', 'through', 'what', 'window', 'with', 'yonder']

В результате не дублируются ‘and’ и ‘is’. Пытался сделать все через .remove однако выдает ошибку, что нету в листе искомого. Пытался как через название, так и через индекс. Ничего не получается.
JOHN_16
я так понимаю задача получить отсортированный список уникальных слов. Однако вы ничего не делаете что бы организовать уникальность. К тому же вы сортируете список после каждого элемента - его нужно сортировать один раз - в самом конце.
Задачу грамотнее всего решить используя не списки, а множества.
py.user.next
  
>>> text = 'A B C a b c A B C D a b c'
>>> 
>>> out = sorted(set(text.split()))
>>> out
['A', 'B', 'C', 'D', 'a', 'b', 'c']
>>>
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