[Python] Quelqu'un peut m'expliquer?

ElChibrax
2022-05-06 18:12:26

https://image.noelshack.com/fichiers/2022/18/5/1651850517-demande.png

Quelqu'un peut m'expliquer l'utilité du deuxième nombre dans les crochets [3:1] ou encore [4:4] ? :(
Du moment que je vais de 1 au premier nombre indiqué entre crochets le résultat est le même :(

originmaster
2022-05-06 18:14:24

Comment tu peux coder sur un truc aussi sombre :honte:

originmaster
2022-05-06 18:18:47

Sinon je ne connais pas le Python, mais visiblement ce que tu fais ça s'appelle du "slice assignment".
Je te laisse chercher avec ça, ce sera peut être plus simple pour trouver avec ce nom.

ElChibrax
2022-05-06 18:28:35

Le 06 mai 2022 à 18:14:24 :
Comment tu peux coder sur un truc aussi sombre :honte:

J'aime bien que mon écran soit sombre, je protège mes yeux et tant que je vois je ne vois pas le soucis :( J'ai même enlevé des filtres pour faire le screen :(

ElChibrax
2022-05-06 18:38:20

Le 06 mai 2022 à 18:28:35 :

Le 06 mai 2022 à 18:14:24 :
Comment tu peux coder sur un truc aussi sombre :honte:

J'aime bien que mon écran soit sombre, je protège mes yeux et tant que je vois je ne vois pas le soucis :( J'ai même enlevé des filtres pour faire le screen :(

Oui je sais que c'est ça, je suis des cours mais il ne précise pas à quoi sert ce deuxième indice.
Si par exemple je souhaite ajouter une valeur à la liste après la 4ème valeur je vais écrire "nomDeLaListe[4:1]" ça j'ai compris mais à quoi sert le 1?

Si le premier indice est 4, je peux choisir pour le second entre les valeurs 1 et 4 comprises ça ne va rien changer. Par contre si je mets 5 ça va remplacer la 6ème valeur.
Donc pourquoi ça ne remplace pas la seconde quand je mets 1? :(

Azerban
2022-05-06 18:46:20

Le deuxième indice c'est la limite haute quand tu fais du slicing. En mettant une limite haute inférieure ou égale à la limite basse pour ton index, le slicing te retourne une liste vide que tu peux "ajouter" dans ta liste originale.

Si ta limite haute est strictement supérieure à la limite basse, dans ce cas le slicing va venir écraser cette portion de ta liste avec les nouvelles valeurs que tu veux lui assigner.

Hashcat
2022-05-06 18:46:53

Le 06 mai 2022 à 18:12:26 :
https://image.noelshack.com/fichiers/2022/18/5/1651850517-demande.png

Quelqu'un peut m'expliquer l'utilité du deuxième nombre dans les crochets [3:1] ou encore [4:4] ? :(
Du moment que je vais de 1 au premier nombre indiqué entre crochets le résultat est le même :(

Plus floue stp

ElChibrax
2022-05-06 18:49:38

Le 06 mai 2022 à 18:46:53 :

Le 06 mai 2022 à 18:12:26 :
https://image.noelshack.com/fichiers/2022/18/5/1651850517-demande.png

Quelqu'un peut m'expliquer l'utilité du deuxième nombre dans les crochets [3:1] ou encore [4:4] ? :(
Du moment que je vais de 1 au premier nombre indiqué entre crochets le résultat est le même :(

Plus floue stp

https://image.noelshack.com/fichiers/2022/18/5/1651850517-demande.png

Azerban
2022-05-06 18:51:38

Exemple :

>>> liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> liste[1: 7]
[2, 3, 4, 5, 6, 7]

>>> liste[2: 4] = [9, 4, 7]
>>> print(liste)
[1, 2, 9, 4, 7, 5, 6, 7, 8, 9, 10] # 3 et 4 ont disparu de la liste

>>> liste[4:4] = [0, 0, 0]
>>> print(liste)
[1, 2, 9, 4, 0, 0, 0, 7, 5, 6, 7, 8, 9, 10] # 0, 0, 0 sont ajoutés dans la liste à l'indice 4 sans rien écraser.

ElChibrax
2022-05-06 18:51:56

Le 06 mai 2022 à 18:46:20 :
Le deuxième indice c'est la limite haute quand tu fais du slicing. En mettant une limite haute inférieure ou égale à la limite basse pour ton index, le slicing te retourne une liste vide que tu peux "ajouter" dans ta liste originale.

Si ta limite haute est strictement supérieure à la limite basse, dans ce cas le slicing va venir écraser cette portion de ta liste avec les nouvelles valeurs que tu veux lui assigner.

Je comprends pas pourquoi :( Normalement les valeurs que j'ai ajouté se situent entre la 4ème et 5ème valeur :( Ou entre la 5ème et la 6ème si on compte le 0 :( Donc pourquoi la limite haute n'est pas juste la valeur au-dessus de la limite basse? :(

ElChibrax
2022-05-06 18:55:25

Le 06 mai 2022 à 18:51:38 :
Exemple :

>>> liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> liste[1: 7]
[2, 3, 4, 5, 6, 7]

>>> liste[2: 4] = [9, 4, 7]
>>> print(liste)
[1, 2, 9, 4, 7, 5, 6, 7, 8, 9, 10] # 3 et 4 ont disparu de la liste

>>> liste[4:4] = [0, 0, 0]
>>> print(liste)
[1, 2, 9, 4, 0, 0, 0, 7, 5, 6, 7, 8, 9, 10] # 0, 0, 0 sont ajoutés dans la liste à l'indice 4 sans rien écraser.

Ca j'ai compris, merci quand-même ^^

Mais c'est curieux qu'on puisse mettre n'importe quelle valeur en limite haute tant qu'elle est inférieure à la limite basse sans que ça ne change absolument rien quoi mais bref :( Pourquoi pas :(

BabyKennen
2022-05-06 18:56:41

Plus degueulasse encore le screen stp

Azerban
2022-05-06 18:57:55

Le 06 mai 2022 à 18:51:56 :

Le 06 mai 2022 à 18:46:20 :
Le deuxième indice c'est la limite haute quand tu fais du slicing. En mettant une limite haute inférieure ou égale à la limite basse pour ton index, le slicing te retourne une liste vide que tu peux "ajouter" dans ta liste originale.

Si ta limite haute est strictement supérieure à la limite basse, dans ce cas le slicing va venir écraser cette portion de ta liste avec les nouvelles valeurs que tu veux lui assigner.

Je comprends pas pourquoi :( Normalement les valeurs que j'ai ajouté se situent entre la 4ème et 5ème valeur :( Ou entre la 5ème et la 6ème si on compte le 0 :( Donc pourquoi la limite haute n'est pas juste la valeur au-dessus de la limite basse? :(

Il faut que ta limite haute soit strictement supérieure à la limite basse (en python la limite haute est l'index non compris)

>> liste = list("ElChibrax")
>>> liste
['E', 'l', 'C', 'h', 'i', 'b', 'r', 'a', 'x']

>>> liste[4:4]
[]

>>> liste[4:5]
['i']

Mackogneur1m60
2022-05-06 19:00:07

Le 06 mai 2022 à 18:18:47 :
Sinon je ne connais pas le Python, mais visiblement ce que tu fais ça s'appelle du "slice assignment".
Je te laisse chercher avec ça, ce sera peut être plus simple pour trouver avec ce nom.

Le Python est un serpent qui vit au Centre de l'Afrique et dans les régions chaudes du Globe comme le Sénégal entre autres. Ce serpent mesure entre un mètre et un mètre et demi. Son corps est trapu et couvert d'écailles jaunes, beiges et brunes.

Azerban
2022-05-06 19:02:47

Le 06 mai 2022 à 18:55:25 :

Le 06 mai 2022 à 18:51:38 :
Exemple :

>>> liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> liste[1: 7]
[2, 3, 4, 5, 6, 7]

>>> liste[2: 4] = [9, 4, 7]
>>> print(liste)
[1, 2, 9, 4, 7, 5, 6, 7, 8, 9, 10] # 3 et 4 ont disparu de la liste

>>> liste[4:4] = [0, 0, 0]
>>> print(liste)
[1, 2, 9, 4, 0, 0, 0, 7, 5, 6, 7, 8, 9, 10] # 0, 0, 0 sont ajoutés dans la liste à l'indice 4 sans rien écraser.

Ca j'ai compris, merci quand-même ^^

Mais c'est curieux qu'on puisse mettre n'importe quelle valeur en limite haute tant qu'elle est inférieure à la limite basse sans que ça ne change absolument rien quoi mais bref :( Pourquoi pas :(

Avec le slicing il y a aussi un troisième paramètre qui te permet de préciser, le pas et ce pas peut être négatif.

>>> liste = list("ElChibrax")
>>> liste
['E', 'l', 'C', 'h', 'i', 'b', 'r', 'a', 'x']

>>> liste[4:1:-1] = ["o", "u", "i"]
>>> liste
['E', 'l', 'i', 'u', 'o', 'b', 'r', 'a', 'x']

Azerban
2022-05-06 19:04:57

liste = list("J'apprends le Python, putain c'est chaud les kheys !!")

print("".join(liste[::-1]))

Donne :

!! syehk sel duahc tse'c niatup ,nohtyP el sdnerppa'J

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.