работа со списками, поиск индекса, python - PullRequest
0 голосов
/ 04 ноября 2010

Я должен найти индекс предмета из списка слов.Функция:

def index(lst_words, word):

должна возвращать индекс word в lst_words.Например,

>>> index (['how, 'to', 'find'], ['how'])

Shoud Return 0 Почему этот не работает для меня?

def index (lst_words, word):
    find = lst_words.index(word)
    return find

Ответы [ 2 ]

3 голосов
/ 04 ноября 2010

Вы, вероятно, имели в виду

['how', 'to', 'find']. Index ('how').

НЕ

['how', 'to', 'find']. Index (['how'])

Это не поиск строки, это поиск списка. Это соответствовало бы

['how', 'to', 'find', ['how']]. Index (['how'])

1 голос
/ 04 ноября 2010
>>> def index(lst_words, word):
       find = lst_words.index(word)
       return find

>>> x = ['hello', 'foo', 'bar']
>>> index(x, 'bar')
2

Это то, что вы, вероятно, имели в виду. Когда вы хотите найти позицию bar, вы передаете bar в качестве строкового параметра, а не списка. Потому что список, который у вас есть, это список строк.

Разница:

>>> x = ['bar']
>>> type(x)
<type 'list'>
>>> x = 'bar'
>>> type(x)
<type 'str'>

То, что вы пытаетесь сделать, сработает, если элемент в списке был другим списком.

>>> x = ['hello', 'foo', ['bar']]
>>> index(x, ['bar'])         # since bar is a list not a string
2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...