J'ai la jointure suivante dans mon code mais je veux aussi imprimer Word [16], j'ai essayé "et" + ", etc., etc., mais pas de chance
J'espère que quelqu'un peut m'aider: -) p> p>
3 Réponses :
Voici une façon de le faire:
>>> s = 'But i also want to print word [16], i have tried "and", "+" etc. but no luck Hope somebody can help me :-)'
>>> a = s.split()
>>> print(' '.join([*a[10:14],a[16]]))
tried "and", "+" etc. luck
String String: P> Out[19]: '11 12 13 14 16
Parfait! :-) comme je le veux
''. Joindre (s
@blhsing, merci d'avoir pointé que sortit .. avez mis à jour ma réponse à réfléchir, a également ajouté l'espace code> pour rejoindre. Cependant, je suppose que @metroll n'avait besoin que d'un indice et il a compris comment la modifier pour obtenir ce dont il a besoin.
@Parvbanks Ceci donne toujours un résultat erroné, comme '' .join (s.split () [15]) code> traiterait la chaîne s.split () [15] code > En tant que séquence de caractères, vous vous retrouveriez donc avec chaque caractère du 16ème mot séparé par un espace. De plus, avec cette approche, il n'y aura pas d'espace entre le 14e mot et le 16e mot.
@blhsing, je ne pense pas si ... si s code> est une chaîne de mots séparés par un espace, s.split () code> le scindera en mots individuels et non caractères code> et s.split () [15] code> retournera le 16ème mot et non le 16e caractère dans s code>
@Parvbanks Veuillez exécuter la démonstration pour voir le problème: repl.it/repls/bleakmotherlyAddin
@Parvbanks the joindre code> méthode dans votre code révisé, ''. Joindre (s.split () [15]) code> est entièrement redondant, car vous divisez essentiellement la String dans des caractères individuels et ensuite les rejoindre dans la même chaîne. s.split () [15] code> aurait été suffisant.
Oui, j'ai remarqué que ... j'ai fait la correction .. merci :)
Vous pouvez utiliser plusieurs objets tranche code> avec l'opérateur code> méthode code> et utilisez itheroTools.chain.from_iterable code> pour rejoindre les tranches, donc que vous n'auriez pas besoin de diviser deux fois la même chaîne ou de stocker le résultat de la division dans une variable temporaire: from operator import itemgetter
from itertools import chain
print(' '.join(chain.from_iterable(itemgetter(slice(10, 15), slice(16, 17))(s.split()))))
Ou ceci: (lambda x: x [10:14] + [x [16]]) (S.Split ()) code>: D
S'il vous plaît ajouter un exemple. Quelle est la valeur de
s code> et que voulez-vous imprimer?Que voulez-vous dire par
mot [16] code>? Comment+ code> ne fonctionne pas, avez-vous utilisé ou s.split () [10:14] + [S.Split () [16]] code>?Je suppose que OP veut les 5ème, 6ème et 10ème mot d'une chaîne. Le moyen le plus simple de le faire est via une variable intermédiaire; Vous ne pouvez pas le faire avec
et code> ou+ code>.En effet, veulent imprimer les mots 10, 11, 12, 13 et 14ème de la chaîne, et le 16e mot. Essayé à la fois s.split () [10:14] + [16] et S.Split () [10:14] + [S.Split () [16]]
@Metroll en fait, ce dernier bit
s.split () [10:14] + [S.Split () [16]] code> aurait dû travailler. Avez-vous eu une erreur?BTW,
[10:14] code> est pas i> vous donner "les mots 10, 11, 12, 13 et 14th", mais juste les 10ème, 11ème, 12ème et 13ème mot .@tobias_k Eh bien, pour le mettre plus précisément,
[10:14] code> vous donne les 11ème, 12ème, 13ème et 14ème mot, plutôt que les 10ème, 11ème, 12ème et 13ème mot.@blhsing Eh bien, si vous i> considère l'élément à l'index 0 au premier et non au Zeroth, puis oui, mais qui fait? :-P