-1
votes

Existe-t-il un moyen simple de sortir une liste dans une liste de Python? comme ceci [[0,1], [2,3]]]

J'ai résolu la partie logique de l'exercice suivant, mais je ne trouve pas une solution simple à produire dans le format requis. Cela ressemble à une liste dans une liste.

Description du problème:

écrire un programme qui prendra une série de chiffres et vous donnera tous les des tranches consécutives consécutives possibles N dans cette chaîne.

Soulevez une erreur si n est plus grand que la longueur de la chaîne.

Exemples par exemple, la chaîne "01234" a les 2 chiffres suivants tranches:

[[0, 1], [1, 2], [2, 3], [3, 4]]

La même chaîne a les tranches 4 chiffres suivantes:

[[0, 1, 2, 3], [1, 2, 3, 4]]

Ceci est mon code qui fonctionne bien, sauf la façon dont il renvoie la réponse est différent, vous ne pouvez donc pas le soumettre. xxx

Ce code est imprimé < code> ['0123', '1234'] , qui est la bonne réponse, mais je le veux dans ce format: [[0, 1, 2, 3], [1, 2, 3, 4]]

(édition) Ajouter cette ligne résolue mon problème suggéré par mkrieger1, merci Ceci est le code final: DEF Series_Slices (chiffres, n): chiffres = [int (x) pour x en chiffres] résultat = [] Pour x dans la plage (0, len (chiffres) -N + 1): Résultat.Append (liste (chiffres (x: n])) n + = 1 Résultat de retour


8 commentaires

cherchez-vous json.dump docs.python.org/ 3 / bibliothèque / json.html


Bienvenue dans le débordement de la pile! En ce qui concerne votre problème, à quel point la valeur de vos variables n'a-t-elle pas l'état souhaité? En d'autres termes, extraire un exemple de reproductible minimal ! En tant que note, Python connaît deux façons de "imprimer" un objet, l'un utilise la conversion vers une chaîne et l'autre via REC () et de chaque classe "de celui-ci. Vérifiez les documents pour comprendre comment votre code fonctionne. En outre, en tant que nouvel utilisateur ici, prenez le tour et lisez Comment demander .


Vous devez convertir la chaîne d'entrée en une liste d'entiers au début: chiffres = [int (x) pour x en chiffres] . Le reste du code devrait alors travailler inchangé.


Dupliqué possible de Comment scinder la chaîne sans Espaces dans la liste des entiers à Python?


@ mkrieger1 J'essaie ce que vous avez suggéré, mais je pense, convertissant la chaîne d'entrée en int () enlèverait la principale zéro dans la chaîne d'entrée. ne serait-ce pas?


Ce n'est pas "convertir la chaîne d'entrée en int ()" mais dans une liste d'entiers.


Non, ce ne serait pas, car il ne convertit pas la chaîne en un seul entier à la fois, mais convertit les caractères individuels.


@ mkrieger1 remerciement ami, chiffres = [int (x) pour x en chiffres] Cette ligne a résolu mon problème. & cette syntaxe de boucle en ligne est cool, j'ai besoin de le maîtriser


3 Réponses :


1
votes

Il suffit d'utiliser list sur vos chaînes: xxx

retourne xxx

et le convertir en entiers ( merci mkrieger, je n'avais pas lu la question avec précaution suffisamment:

Vous pouvez utiliser mapper , qui ira déterrer sur les caractères de votre chaîne et renvoyer un entier pour chacun, puis Faites une liste de la liste de l'objet de la carte: xxx

ou utilisez une compréhension de liste: xxx

plus généralement, appliquer < Code> Liste à tout ce qui est itérable retournera une liste de ses éléments.


1 commentaires

Liste ('0123') est ['0', '1', '2', '3'] . Besoin de convertir également en entiers.



-1
votes

changer votre code en résultat = [] et résultat.Append (liste (chiffres (x: x])) dans la ligne 3 et la ligne 5.


0 commentaires

0
votes

vous c un fait avec une compréhension de la liste. Le premier niveau passe par la taille et le deuxième niveau prend les tranches de cette taille: xxx


0 commentaires