Disons que j'ai une ficelle
Str1 = "TN 81 NZ 0025"
str2 = "DL 11C AA 1111"
two = first2(str1)
print(two)
>>>TN
Comment puis-je obtenir les deux premières lettres de ces chaînes. J'ai besoin de la fonction first2 pour cela.
C'est aussi simple que string[:2]
. Une fonctionpeut être facilement écrite pour le faire, si vous en avez besoin.
Même cela, est aussi simple que
def first2(s):
return s[:2]
En général, vous pouvez utiliser les caractères d'une chaîne de i
à j
avec string[i:j]
. string[:2]
est un raccourci pour string[0:2]
. Cela fonctionne aussi pour les tableaux.
Découvrez la notation de tranche python dans le didacticiel officiel
En python, les chaînes sont une liste de caractères, mais elles ne sont pas explicitement du type liste, mais ressemblent à des listes (c’est-à-dire qu’elles peuvent être traitées comme une liste). Plus officiellement, ils sont appelés sequence
(voir http://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-Tuple-bytearray-buffer-xrange ):
>>> a = 'foo bar'
>>> isinstance(a, list)
False
>>> isinstance(a, str)
True
Comme les chaînes sont des séquences, vous pouvez utiliser slicing
pour accéder à des parties de la liste, notées list[start_index:end_index]
voir Expliquez la notation de tranche de Python . Par exemple:
>>> a = [1,2,3,4]
>>> a[0]
1 # first element, NOT a sequence.
>>> a[0:1]
[1] # a slice from first to second, a list, i.e. a sequence.
>>> a[0:2]
[1, 2]
>>> a[:2]
[1, 2]
>>> x = "foo bar"
>>> x[0:2]
'fo'
>>> x[:2]
'fo'
Lorsqu'elle n'est pas définie, la notation de tranche prend la position de départ comme 0 et la position de fin comme len (séquence).
À l’époque des années C, c’est un tableau de caractères, l’ensemble de la question de la liste dynamique vs statique ressemble maintenant à une légende, voir Liste Python vs Array - quand utiliser?
Voici à quoi ressemblerait la fonction simple:
def firstTwo(string):
return string[:2]
Tous les exemples précédents lèveront une exception au cas où votre chaîne ne serait pas assez longue.
Une autre approche consiste à utiliser 'yourstring'.ljust(100)[:100].strip()
.
Cela vous donnera 100 premiers caractères. Vous pourriez avoir une chaîne plus courte au cas où vos derniers caractères seraient des espaces.
t = "your string"
Jouez avec les N premiers caractères d'une chaîne avec
def firstN(s, n=2):
return s[:n]
qui est par défaut équivalent à
t[:2]
Pour être complet: au lieu d'utiliser def
, vous pouvez donner un nom à une fonction lambda
:
first2 = lambda s: s[:2]