вот как я получил ввод данных в начале:
with open("wordslist.txt") as f:
words_list = {word.removesuffix("\n") for word in f}
with open("negation_handling.csv") as g:
for tweete in g:
for word in tweete.split():
if word not in words_list:
print(word)
Этот код приводит к данным типа <class 'str'>
. эта строка класса содержит много слов, которые имеют дубликаты. Я хотел напечатать все слова, но слова не повторяются (удалить все дубликаты). вот как выглядит класс, имя класса word
:
gfg
best
gfg
I
am
I
two
two
three
..............
мой список строк содержит около 4500 слов и разделен новой строкой (ввод), как в примере с моим вопросом. теперь я не могу скопировать и вставить строки, потому что их слишком много, поэтому я храню их в классе под названием «слово», но я не знаю, как вызвать этот класс. Я хотел, чтобы код выполнял цикл и удалял все повторяющиеся слова, чтобы вывод был таким:
gfg best I am two three..........
это то, что я пробовал:
input_list_of_strings = word
# Create empty list to store unique
unique_words = []
# Loop through each word and check if it exists in unique words list
for word in input_list_of_strings:
if word not in unique_words:
unique_words.append(word)
# Print the result
print(unique_words)
но результаты такие:
['e']
как правильно назвать класс word
?
Это полное предположение, но если у вас есть список строк и вы пытаетесь удалить дубликаты, сохраняя порядок, вы можете сделать newlist = list(dict.fromkeys(oldlist))
. Если это не то, что вы пытаетесь сделать, вам нужно предоставить гораздо больше контекста.
отредактировал мой вопрос с кодами и контекстом!
я попробовал ваш код, это идея, но он печатает символы вместо слов и не перебирает все строки класса
Ваши первые две строки кода генерируют набор, а не строку. Остальное просто печатает строки. В конце нет переменной, содержащей строку или список строк. Что word
в вашей попытке?
Нам нужно знать, находятся ли ваши слова в списке, строке или в файле. Каждая ситуация потребует (возможно, похожего, но) немного отличающегося подхода.
на данный момент я даже не знаю ... Я проверил тип данных слова с помощью этого кода «print (type (word))», и на выходе это «<class 'str'>», поэтому я предположил «слово» это класс.
word
— это переменная, имя, которое ссылается на строку. Теперь я вижу, что вы определили его внутри цикла. Так что word
, вероятно, хранит последнее напечатанное слово. Не все слова, которые изначально были в вашем файле (попробуйте print(word)
). Кроме того, вы переопределяете его снова и снова, поэтому не рекомендуется использовать input_list_of_strings = word
, если word
будет заполнителем для циклической переменной.
да, ты прав! если я печатаю «слово» вне цикла, оно сохраняет только последнее напечатанное слово. Я пробовал «печатать (слово)», но результат тот же, печатается только последнее слово. хорошо, что мне делать? :)
Если отпечатки — это слова, которые вам нужны, попробуйте следующее: добавьте list_of_words = []
в начало вашего кода. Затем, когда вы читаете "negation_handling.csv"
, в последней строке замените print(word)
на list_of_words.append(word)
. Тогда попробуйте @DSergei ответить с помощью list_of_words
.
Отвечает ли это на ваш вопрос? Как вернуть уникальные слова из текстового файла с помощью Python
это сработало! теперь тип данных — список! спасибо большое за терпение ко мне! :)
Я проверю ссылку, которую вы прикрепили позже! еще раз спасибо! :)
input_list_of_strings = ['gfg', 'best', 'gfg', 'I', 'am', 'I', 'two', 'two', 'three']
# Create empty list to store unique
unique_words = []
# Loop through each word and check if it exists in unique words list
for word in input_list_of_strings:
if word not in unique_words:
unique_words.append(word)
# Print the result
print(unique_words)
input_list_of_strings = ['gfg', 'best', 'gfg', 'I', 'am', 'I', 'two', 'two', 'three']
# Create a set of unique words from the list
unique_words = set(input_list_of_strings)
unique_words_list = list(unique_words)
# Print the result
print(unique_words_list)
Надеюсь поможет =)
спасибо за Ваш ответ! Я попробовал оба ваших кода, но результат только такой: "gf". он выводит слово как слово, а не символы, но он не повторяется по списку, поэтому выводит только одно слово. вы можете сделать это с циклом?
и я попытался изменить «привет, мир, привет, мир питона» на «слово», но он распечатал «мир», я запутался :(
Насколько я понимаю, вам нужны слова «Я хотел напечатать все слова», а не «он печатает слово как слова, а не символы». Чего вы на самом деле хотите? И не могли бы вы сказать, вводные слова - это что-то из ввода терминала () или список строк?
да, я хотел напечатать все слова, но предоставленный вами код распечатал только одно слово (похоже, цикл не работает). вход (слово с именем класса) представляет собой список строк.
только что попробовал, ваш код отлично работает для вашего примера («привет, мир, привет, мир питона»), но когда я изменил ввод на свои данные, вывод выглядит следующим образом: «мир», между тем у меня нет этого слова в моем данные:)
Я изменил код, если у вас есть список строк в качестве входных данных. Попробуйте сейчас, пожалуйста =)
Я только что заметил, что с вашим кодом все в порядке, это как-то связано с моим вводом. мой список строк содержит около 4500 слов и разделен новой строкой (ввод), как в примере с моим вопросом. теперь я не могу скопировать и вставить строки, потому что их слишком много, поэтому я храню их в классе под названием «слово», но я не знаю, как вызвать этот класс, вы можете мне помочь?
Я отредактировал свой вопрос с вашим кодом :)
Просто чтобы уточнить, под списком вы подразумеваете 1. тип python список - код предоставляется 2. или слова с клавиатуры? Класс также хранит данные в некоторых переменных. Каким образом вы сохранили первоначальный ввод?
подождите, я добавлю свой код для ввода данных :)
Я уже добавил, как я получил данные :)
Не могли бы вы также предоставить код вашего слова класса? К сведению, лучше называть классы с большой буквы впереди, например, класс Word
@ZulfiA, если ваш «список» представляет собой открытый файл с одним словом в строке, просто адаптируйте этот код: замените for word in input_list_of_strings
на for word in f
, где f — имя открытого файла (после with open("wordslist.txt") as f:
)
А под классом ты подразумеваешь класс python или что-то другое?
не могли бы вы написать свой ответ в новом ответе? @Игнатиус Рейли
да, это класс Python :)
У вас есть класс под названием word
??? Если да, то добавьте определение класса.
Вставьте сюда проверенный код