Je ne peux pas écrire de la documentation: p> Les indices en tranches ont des valeurs par défaut utiles; un premier index omis par défaut à
zéro fort>, un second index omis par défaut par défaut à la taille de la chaîne étant
tranché. p>
blockQuote> p> s [:: - 1] code> qui inverse la chaîne s code> à l'aide d'indices explicites. Je veux écrire s [A: B: -1] code> mais je ne sais pas quoi mettre pour a code> et b code>. Voici un échantillon de code, il devrait produire fedcba code>:
4 Réponses :
Je veux écrire S [A: B: -1] mais je ne sais pas quoi mettre pour A et B. P>
Voilà y aller: p>
xxx pré> blockQuote>
Cela devrait le faire.
s[len(s)::-1]
Cela fournit une valeur explicite dans l'espace réservé A code>, mais pas le B code> un; L'OP veut les deux.
Ce serait une meilleure réponse si vous avez expliqué comment le code que vous avez fourni des réponses à la question.
Si vous voulez vraiment remplir tous les 3 placements, vous pouvez faire édition: comme suggéré par @Deceze, cela fonctionne trop p> s[None:None:-1]
Aucune code> car le début ferait bien ...
Eh bien, c'est ce qui se passe lorsque vous l'avez laissé vide, il devient Aucun code> et Python le gère. Je pense donc que ce n'est toujours pas une réponse.
@ASOCIA Si la question est de trouver des valeurs pour a, b, c code> qui reproduira le comportement de s [:: - 1] code> avec S [A: B: C] code>, puis sur Aucun code> est une solution valide.
En outre, des indices omis par défaut à zéro ou à la taille de la chaîne, au moins comme indiqué dans la question.
@Decezeze alors pourquoi @Pani a répondu S [LEN (S): Aucun: -1] code> mais pas S [Aucun: Aucun: -1] code>? Ils ont essayé de trouver a code> et len (s) code> était une valeur valide pour A code>, essayé de trouver b code> mais Impossible de trouver et de mettre aucun code>. Révélant l'évidence, Aucun code>, ne doit pas être considéré comme une réponse.
Voici des valeurs pour A et B qui fonctionnent:
lst = list('abcd')
a = b = None
print (lst[a:b:-1]) # returns ['d', 'c', 'b', 'a']
a = len(lst)
b = 0 - len(lst) - 1 # b = -5
print (lst[a:b:-1]) # returns ['d', 'c', 'b', 'a']
S'il vous plaît expliquer comment devrait être la sortie?
Je ne comprends pas ce que vous demandez. Pourquoi "ne peut pas" écrire
s [:: - 1] code>? Vous peut I> l'écrire et il produit la sortie que vous souhaitez."Je ne sais pas quoi mettre pour A et B" - qu'avez-vous essayez i> de mettre et quel était le problème avec cela?
@ mkrieger1 Je peux - je veux juste comprendre comment je peux écrire cela en utilisant des indices explicites. C'est une question valable - je devrais pouvoir écrire ceci en utilisant
s [A: B: -1] code> où a, b y a quelques expressions.... Donc, c'est une question de curiosité, pas un problème pratique? Nos règles exigent que les problèmes soient pratiques i> - que leurs réponses changent comment vous allez sur la pratique de la programmation. (Voir meta.stackoverflow.com/questions/297058/... sur Overflow Meta Stack )
S [LEN (s): Aucune: -1] code> semble fonctionner@CHARLES Vous pouvez concevoir une situation dans laquelle vous décidez de manière dynamique des valeurs pour
a, b, c code> pour passer às [A: B: C] code> ...@Deceze, sûr; Un tel scénario est donné (avec une tentative spécifique à une implémentation de travail et un mode de défaillance spécifique rencontré), nous avons une question pratique. F / E, n'ayant pas un Pratique i> échec, nous ne pouvons pas dire si
Aucun code> est une réponse adéquate dans le champB code> ou si elle doit vraiment être0 code> (ou une autre valeur entières non négative); Parce que la seule base sur laquelle une réponse peut être déterminée à être correcte est la "op d'emploi" le PO considère que leur curiosité est résolue? ".Voici un autre qui n'a pas encore été répertorié:
s [-1: -Len (s) -1: -1] code>, bien ques [Aucun: Aucun: -1] code> est probablement plus lisible.Ne diriez-vous pas alors que la documentation Python est fausse? De toute évidence, les indices omis par défaut à
Aucun code>. Si une expérience avec la tranchées code> Il est clair que la valeur par défaut estAucun code> si un index est omis.Je pense que cela pourrait bouillir à cette question: Stackoverflow.com/questions/399067/... demande essentiellement "Pourquoi utiliser -1 comme
stop code> ne fonctionne pas attendu". Ou ceci: Stackoverflow.com/Questtions/5798136/...@ S5S, ... Je dirais que la documentation Python sur le comportement par défaut ne couvre pas le cas d'étape négative, oui. OTOH, le cas d'étape négative n'est pas se produit i> en présence de comportement purement par défaut. :)
@CharlesDuffy mais même avec une étape non négative, en utilisant
Aucun code> à la place des indices omis produisent des résultats cohérents. Par exemple,s [aucun, aucun] code> ous [aucun: 3] code> etc. Il apparaît, il est plus correct de suggérer que la valeur par défaut estAucun < / code> si un index est omis. Je n'ai pas regardé la mise en œuvre, mais j'imagine que cela par défaut deAucun code>.Je ne serais pas surpris si la mise en œuvre reconnaît
Aucun code> comme espace réservé et la remplaçait par quelque chose d'autre (tel qu'un indice non négatif avec une valeur numérique spécifique) plus tard.