Bizarrerie avec input liste

Tito -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je ne comprends pas pourquoi Python me renvoie 8 avec ce programme : 

tab=[[0,1,2,2,3,4,5,5,6,7,8,9,11],[2,4,7,10,3,5,3,6,0,11,8,2,6]]

def plusBas(tab):
    j=0
    for k in range(0, len(tab[0])):
        if tab[1][k]<tab[1][j] or (tab[1][k]==tab[1][j] and tab[0][k]<tab[0][j]):
            j=k
    return j

et me renvoie 0 avec le programme suivant, où l'utilisateur a saisi en input : [[0,1,2,2,3,4,5,5,6,7,8,9,11],[2,4,7,10,3,5,3,6,0,11,8,2,6]] 

tab=input()

def plusBas(tab):
    j=0
    for k in range(0, len(tab[0])):
        if tab[1][k]<tab[1][j] or (tab[1][k]==tab[1][j] and tab[0][k]<tab[0][j]):
            j=k
    return j

Merci bien.


Windows / Edge 108.0.1462.54

2 réponses

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    avec input(), tab est une chaine de caractères pas une liste

    alors qu'avec ton 1er essai, tu crée une liste dans le code : tab = [......]

    0
    1. Tito
       

      ah ok je vois, mais comment faire pour que l'utilisateur rentre une liste alors ? Ca ne fonctionne pas avec list(input()).

      0
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    avec split()

    tab_l=tab.split(',')

    Il faut saisir avec input, par exemple 1,2,3,4 sans les crochets 

    0