Как печатать только уникальные слова в строке класса

вот как я получил ввод данных в начале:

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?

Вставьте сюда проверенный код

Dev 20.02.2023 06:34

Это полное предположение, но если у вас есть список строк и вы пытаетесь удалить дубликаты, сохраняя порядок, вы можете сделать newlist = list(dict.fromkeys(oldlist)). Если это не то, что вы пытаетесь сделать, вам нужно предоставить гораздо больше контекста.

Kevin 20.02.2023 06:36

отредактировал мой вопрос с кодами и контекстом!

Zulfi A 20.02.2023 06:44

я попробовал ваш код, это идея, но он печатает символы вместо слов и не перебирает все строки класса

Zulfi A 20.02.2023 06:45

Ваши первые две строки кода генерируют набор, а не строку. Остальное просто печатает строки. В конце нет переменной, содержащей строку или список строк. Что word в вашей попытке?

Ignatius Reilly 20.02.2023 08:05

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

Ignatius Reilly 20.02.2023 08:07

на данный момент я даже не знаю ... Я проверил тип данных слова с помощью этого кода «print (type (word))», и на выходе это «<class 'str'>», поэтому я предположил «слово» это класс.

Zulfi A 20.02.2023 08:11
word — это переменная, имя, которое ссылается на строку. Теперь я вижу, что вы определили его внутри цикла. Так что word, вероятно, хранит последнее напечатанное слово. Не все слова, которые изначально были в вашем файле (попробуйте print(word)). Кроме того, вы переопределяете его снова и снова, поэтому не рекомендуется использовать input_list_of_strings = word, если word будет заполнителем для циклической переменной.
Ignatius Reilly 20.02.2023 08:16

да, ты прав! если я печатаю «слово» вне цикла, оно сохраняет только последнее напечатанное слово. Я пробовал «печатать (слово)», но результат тот же, печатается только последнее слово. хорошо, что мне делать? :)

Zulfi A 20.02.2023 08:21

Если отпечатки — это слова, которые вам нужны, попробуйте следующее: добавьте list_of_words = [] в начало вашего кода. Затем, когда вы читаете "negation_handling.csv", в последней строке замените print(word) на list_of_words.append(word). Тогда попробуйте @DSergei ответить с помощью list_of_words.

Ignatius Reilly 20.02.2023 08:22

Отвечает ли это на ваш вопрос? Как вернуть уникальные слова из текстового файла с помощью Python

Ignatius Reilly 20.02.2023 08:26

это сработало! теперь тип данных — список! спасибо большое за терпение ко мне! :)

Zulfi A 20.02.2023 08:29

Я проверю ссылку, которую вы прикрепили позже! еще раз спасибо! :)

Zulfi A 20.02.2023 08:31
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
13
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Если ваш ввод представляет собой список строк, вы можете просто запомнить все уникальные строки, используя цикл:
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)
  1. Кроме того, вы можете использовать python set, но обратите внимание, что он не сохранит первоначальный порядок слов.
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". он выводит слово как слово, а не символы, но он не повторяется по списку, поэтому выводит только одно слово. вы можете сделать это с циклом?

Zulfi A 20.02.2023 06:53

и я попытался изменить «привет, мир, привет, мир питона» на «слово», но он распечатал «мир», я запутался :(

Zulfi A 20.02.2023 07:09

Насколько я понимаю, вам нужны слова «Я хотел напечатать все слова», а не «он печатает слово как слова, а не символы». Чего вы на самом деле хотите? И не могли бы вы сказать, вводные слова - это что-то из ввода терминала () или список строк?

DSergei 20.02.2023 07:10

да, я хотел напечатать все слова, но предоставленный вами код распечатал только одно слово (похоже, цикл не работает). вход (слово с именем класса) представляет собой список строк.

Zulfi A 20.02.2023 07:14

только что попробовал, ваш код отлично работает для вашего примера («привет, мир, привет, мир питона»), но когда я изменил ввод на свои данные, вывод выглядит следующим образом: «мир», между тем у меня нет этого слова в моем данные:)

Zulfi A 20.02.2023 07:16

Я изменил код, если у вас есть список строк в качестве входных данных. Попробуйте сейчас, пожалуйста =)

DSergei 20.02.2023 07:22

Я только что заметил, что с вашим кодом все в порядке, это как-то связано с моим вводом. мой список строк содержит около 4500 слов и разделен новой строкой (ввод), как в примере с моим вопросом. теперь я не могу скопировать и вставить строки, потому что их слишком много, поэтому я храню их в классе под названием «слово», но я не знаю, как вызвать этот класс, вы можете мне помочь?

Zulfi A 20.02.2023 07:29

Я отредактировал свой вопрос с вашим кодом :)

Zulfi A 20.02.2023 07:33

Просто чтобы уточнить, под списком вы подразумеваете 1. тип python список - код предоставляется 2. или слова с клавиатуры? Класс также хранит данные в некоторых переменных. Каким образом вы сохранили первоначальный ввод?

DSergei 20.02.2023 07:35

подождите, я добавлю свой код для ввода данных :)

Zulfi A 20.02.2023 07:39

Я уже добавил, как я получил данные :)

Zulfi A 20.02.2023 07:42

Не могли бы вы также предоставить код вашего слова класса? К сведению, лучше называть классы с ​​большой буквы впереди, например, класс Word

DSergei 20.02.2023 07:51

@ZulfiA, если ваш «список» представляет собой открытый файл с одним словом в строке, просто адаптируйте этот код: замените for word in input_list_of_strings на for word in f, где f — имя открытого файла (после with open("wordslist.txt") as f:)

Ignatius Reilly 20.02.2023 07:53

А под классом ты подразумеваешь класс python или что-то другое?

DSergei 20.02.2023 07:54

не могли бы вы написать свой ответ в новом ответе? @Игнатиус Рейли

Zulfi A 20.02.2023 08:03

да, это класс Python :)

Zulfi A 20.02.2023 08:03

У вас есть класс под названием word??? Если да, то добавьте определение класса.

Ignatius Reilly 20.02.2023 08:08

Другие вопросы по теме