2016-03-09 3 views

ответ

0

Карта строку в индексе с помощью функции карты и указательный.

Sentence = str(input("Type in the sentence here:")).split(" ") 
indexed_sentence = list(map(lambda x: Sentence.index(x), Sentence)) 

Вы также можете сделать:

indexed_sentence = [Sentence.index(x) for x in Sentence] 

или

indexed_sentence = [] 
for x in Sentence: 
    indexed_sentence.append(Sentence.index(x)) 

или

indexed_sentence = [] 
for x in Sentence: 
    for count in range(len(Sentence)): 
     if x == Sentence[count]: 
      indexed_sentence.append(count + 1) 
      break 
+0

лямбда - это, в основном, безымянная функция, которую вы можете выбросить после использования ее один раз. – mattsap

+0

Я не понимаю ваших требований. Не могли бы вы уточнить? Вы говорите, что не можете использовать str.index()? – mattsap

+0

Каковы числа, разделенные в строке? – mattsap

-1

Просто сделай это:

Sentence = [x for x in range(len(Sentence))] 
+2

Если это ваш ответ, почему бы просто не сделать Sentence = list (range (len (Sentence)))? – mattsap

+0

@mattsap: Потому что 'range' возвращает генератор в python 3.x. Возможно, 'list (range (len (Sentence))). –

+1

@mattsap Поскольку OP хочет заменить слова позицией, которая, очевидно, означает быть в списке. – MarkyPython

Смежные вопросы