2011-03-11 5 views
0

Je demande à un utilisateur d'entrer un numéro, dans lequel je veux imprimer le point considéré à ce point d'indice dans la liste ..Python Liste/Index Recherche

Voici le code que j'ai actuellement:

List = ["a", "b", "c", "d", "e", "f"] 

print "The list has the following", len(List), "list:", List 

new_item = raw_input("Which item would you like to add? ") 
List.append(new_item) 
print "The list has the following", len(List), "items:", List 

Number = raw_input ("Please select a number: ") 
+3

Quelle est votre question? –

+1

'imprimer Liste [Nombre]'? –

+0

En demandant à l'utilisateur d'entrer un nombre .... Je veux que l'élément de cet index soit affiché. si l'utilisateur entre 2 je veux que "c" ti soit affiché .. ai été bavarder avec plus de code mais ne peut tout simplement pas le faire fonctionner. – IrishGal

Répondre

5

Essayez de convertir Number à un entier premier:

i = int(Number)                 
print "You selected:", List[i] 

Soit dit en passant, il est bon Python style pour rendre les variables minuscules, et garder les identifiants qui commencent par une lettre majuscule pour les classes. Ainsi, au lieu de List vous pouvez utiliser my_list et au lieu de Number il suffit d'utiliser number. (Vous ne devez pas utiliser list comme nom de variable car cela masquera le type list intégré.)

+1

Merci Mark !! :) – IrishGal

1
l = ["a", "b", "c"] 
ii = raw_input("Please select a number: ") 
print l[ii] 
+0

Seule chose à retenir ici est que l'indexation commence à partir de 0, pas 1 –

+0

L'erreur qui apparaît est 'TypeError: les index de liste doivent être des entiers, pas str' quand je fais cela Jim – IrishGal

0

Ce que vous tentez de faire s'appelle "indexer" une chaîne. Elle est réalisée comme suit

letter_at_index = my_list[index] 

Notez que les indices commencent à 0, c'est

my_list = ['a', 'b', 'c'] 
a = my_list[0] 
b = my_list[1] 
c = my_list[2] 

Les indices négatifs peuvent être spécifiées, par exemple

c = my_list[-1] 

Plus d'informations en séquence Types here

0
List = ["a", "b", "c", "d", "e", "f"] 
print "The list has the following", len(List), "list:", List 
try: 
    Number = raw_input ("Please select a number: ") 
    item = List[int(Number)] 
    print "The list item at", Number, "is", item 
except EOFError: 
    print "Error. Nothing entered" 
except ValueError: 
    print "Error. Expecting a number instead of:", Number 
except IndexError: 
    print "Error. Number out of range:", Number 
0
List = ["a", "b", "c", "d", "e", "f"] 

print "The list has the following length: "+str(len(List))+ "\n list:"+repr(List) 

List.append(raw_input("\nWhich item would you like to add? ")) 

print "\nThe list has the following length: "+str(len(List))+ "\n list:"+repr(List) 

print '\nThe item at the position you entered is : '+\ 
     repr(List[int(raw_input ("\nPlease select a number: "))])[1:-1] 

Résultat

The list has the following length: 6 
list:['a', 'b', 'c', 'd', 'e', 'f'] 

Which item would you like to add? (12,52,145) 

The list has the following length: 7 
list:['a', 'b', 'c', 'd', 'e', 'f', '(12,52,145)'] 

Please select a number: 6 

The item at the position you entered is : (12,52,145) 
0

les opérations suivantes:

i = None 
listend = len(List)-1 
while i == None: 
    try: 
     print '' 
     raw = raw_input("Which item would you like to add? ") 
     i = int(raw) 
     value = List[i] 
    except IndexError: 
     print i, 'is out of bounds. Expecting an integer from 0 to', listend 
     i = None 
    except: 
     print 'You entered "%s" however I was expecting an integer from 0 to %s'%(raw, listend) 
    else: 
     print 'Result:', List[i] 

Il est souvent utile de boucle en attendant l'entrée acceptable de cette façon - vous remarquerez que i est réglée uniquement autre chose None si int(raw) s'exécute correctement et s'il est hors des limites de votre liste, vous le réglez sur None. L'instruction else n'est pas strictement nécessaire car son contenu peut sortir de la boucle while, mais il semble que ce soit la situation pour laquelle il a été conçu - exécuter un bloc de code uniquement si le bloc try n'a pas levé d'exception sans gérer les exceptions lui-même.