2010-11-04 24 views
0

Je devrais trouver un index d'un article d'une liste de mots. La fonction:opérant sur des listes, trouver l'index, python

def index(lst_words, word): 

devrait retourner l'indice de word dans lst_words. par exemple.

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

qui devraient retourner 0 pourquoi celui-ci ne fonctionne pas pour moi?

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

Répondre

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

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

C'est ce que vous vouliez probablement dire. Lorsque vous souhaitez rechercher la position bar, vous transmettez bar en tant que paramètre de chaîne et non en tant que liste. Parce que la liste que vous avez, est une liste de chaînes.

La différence est:

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

Donc ce que vous essayez de faire, ne fonctionnera que si l'élément dans la liste était une autre liste.

>>> x = ['hello', 'foo', ['bar']] 
>>> index(x, ['bar'])   # since bar is a list not a string 
2 
3

Vous vouliez probablement dire

[ 'comment', 'à', 'trouver']. Index ('comment').

PAS

[ 'comment', 'à', 'trouver']. Index ([ 'comment'])

Ce n'est pas la recherche d'une chaîne, c'est la recherche d'al ist. Il aurait apparié

[ 'comment', 'à', 'trouver', [ 'comment']]. Index ([ 'comment'])

+0

Je suis désolé mais non, le résultat whoud exactement comme index ([ 'comment 'à', 'trouver'], [' comment '])' – Gusto

+1

@Gusto: Le résultat devrait être 0 , qui est ce que ce code renvoie. – MAK

+0

Peut-être que si vous aviez dit '[['comment'], 'to', 'find']. Index (['comment'])' fonctionnerait et retournerait '0', l'OP comprendrait mieux. – martineau