Bizarrerie avec input liste

Tito -  
Phil_1857 Messages postés 1872 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

A voir également:

2 réponses

Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

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
Tito
 

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

0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

avec split()

tab_l=tab.split(',')

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

0