-3

Как найти слово, состоящее только из различных символов? Если таких слов несколько, найти первое из них.

Например: Например, строка имеет слова с разными символами (am, studying, new, and, want, to, learn, lot)

string = "I am studying programming. I'm new and I want to learn a lot."

Но есть несколько, мне нужно найти первый (am).

Пожалуйста, как можно найти?

n096
  • 23
  • 3
    Почему am, если I первое слово и удовлетворяет условию? Разбейте строку на слова, в цикле проверяйте содержит ли слово повторяющиеся символы, если нет, то мы закончили, если да, то переходим к следующему слову. Вы сами решить попробуйте, больше толка будет. – Pavel Karateev Jan 11 '16 at 17:37
  • 2
    самый простой способ проверить слово на наличие повторяющихся букв - оставить буквы только в одном экземпляре и сравнить число исходных и полученных символов, например, через len(set(word)) == len(word) – BOPOH Jan 11 '16 at 17:48
  • Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа). – Nicolas Chabanovsky Jan 12 '16 at 01:06
  • что значит "символ" в вашем случае? – jfs Jan 12 '16 at 08:37

2 Answers2

1

Ответ зависит от того, что вы понимаете под символом, например, если символ это Unicode codepoint, то:

word = next(w for w in words if len(w) == len(set(w)))

Если хочется буквы, видимые пользователю, считать:

import regex as re # pip install regex

chars = lambda word: re.findall(r'\X', word)
word = next(w for w in words if len(chars(w)) == len(set(chars(w))))

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

>>> words = re.findall(r'\w+', string)
>>> words
['I', 'am', 'studying', 'programming', 'I', 'm', 'new', 'and', 'I', 'want', 'to', 'learn', 'a', 'lot']
jfs
  • 52,361
0

Вот сделел как советовал ВОРОН

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

# Как найти слово, состоящее только из различных символов? Если таких слов несколько, найти первое из них.

all_word = "I am studying programming. I'm new and I want to learn a lot." # Задаем строку в которой будем искать слова
matrix=all_word.split() # преобразуем строку в список
for one_word in matrix: # Перебираем все слова в списке
    if len(one_word)>1: # отбрасываем слова короче 2х символов
        if len(set(one_word)) == len(one_word): # проверяем повторяются ли символы в слове
            print(one_word)