Bizarrerie avec input liste

Fermé
Tito - 2 janv. 2023 à 16:44
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 2 janv. 2023 à 19:04

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

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
2 janv. 2023 à 17:43

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

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 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 2 janv. 2023 à 19:06

avec split()

tab_l=tab.split(',')

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

0