[résolu] Ajouter un élément à une liste

Je ne comprends pas.

j’ai ce message d’erreur:
Traceback (most recent call last):
File « coordonnee.py », line 198, in
latitude = latitude.append(row[« latitude »])
AttributeError: ‹ NoneType › object has no attribute ‹ append ›

lors de l’éxécution de ce code (j’ai rétrécie à la zone concernée)

# définition du critére de recherche (critR)
# ET du critére de sélection (critS)
# le critére de sélection permet de choisir un résultat, s'il y en a plusieurs qui correspondent à la recherche
critR="CP"
if critR=="ville":
    critR_msg="nom de ville"
    critS="CP"
if critR=="CP":
    critR_msg="Code postal"
    critS="ville"
if 0<mode<10:
    print("recherche par", critR_msg)
    recherche=input("lieu recherché? ")
elif mode>10:
    recherche=input(critR+str("?"))
Fichier_utilisé=chemin_NationFile
if mode in [2,4]: print("fichier de donnée utilisé:",Fichier_utilisé)
#
# initialisation 
find=sel=0
latitude  =[]
longitude =[]
complement=[]
see=0
seemax=500
# see=1 : permet d'afficher les villes connus (utile? en cas d'orthographe différent)
# seemax: limite le nombre d'éléments affichés
if mode<10: see=0
# on affiche pas la liste sur un petit écran!
with open(Fichier_utilisé, mode='r') as csvfile:
    reader = csv.DictReader(csvfile)
    line_count= 0
    for row in reader:
        if line_count== 0:
            lstCrit=(",".join(row))    # renvoie une chaine
            lstCrit=lstCrit.split(",") # convertie la chaine en liste
            if mode in [2,4]:
                print("contenu de la 1ere ligne:", lstCrit)
            if critR in lstCrit:
                if mode in [2,4]: print("critére de recherche   :",critR)
                if critS in lstCrit:
                    sel=1 # autorise l'utilisation du critére de sélection
                    if mode in [2,4]: print("complément de sélection:",critS)
            if see:
                print("\nliste des villes:")
        line_count += 1
        if see and line_count<seemax: 
            print(row[critR],end=",")
            if line_count==seemax-1:
                print("...",end=",")
        if row[critR]==recherche:
            find+= 1
            latitude =  latitude.append(row["latitude"])
            longitude= longitude.append(row["longitude"])
            # append(x): ajoute l'élément x à une liste
            if sel: 
                complement=complement.append(row[critS])
            if see:    print()
            if find>1: print(find,"e concordance:")
            print(" latitude :",row["latitude"],"\n longitude:",row["longitude"])
            if sel:    print("",critS,":",row[critS])
    if see: print("\n")
    if mode in [2,4]:
        print(line_count,"lignes de données traitées.")
    if 0<mode<10 or find>1:
        print(find,"concordance(s) trouvées")

Je ne vois pas où est mon erreur, j’ai bien définie la liste au début…

hello,

pour rajouter un élément à une liste :
liste.append("élément")

1 « J'aime »

Oui, ici « row » est un « dictionnaire »
row[« latitude »] renvois la valeur de la chaîne stockée, dans la ligne balayée et à la colonne dénommée « latitude »
il me semble avoir respecté la syntaxe

Hello, @Alynx

Je crois que je te l’avais dit il y a plus d’un an!!! Mais bon c’est peut être pas à toi, je me souviens plus:
En python, quand ça bouine, décomposer au plus simple dans une console IDE Python.

>>> r={"lat":1, "lon":2}
>>> l=[]
>>> l.append(r["lat"])
>>> l
[1]

liste=liste.append() n’est pas la bonne syntaxe pytonique !

Bon courage.

A+

1 « J'aime »

Bon, j’ai mis du temps à comprendre! :grin:
ok, merci :grinning: