web-dev-qa-db-fra.com

Comment obtenir les 2 premières lettres d'une chaîne en Python?

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.

6
Ufoguy

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]
18
ShinTakezou

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

4
stewSquared

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?

1
alvas

Voici à quoi ressemblerait la fonction simple:

def firstTwo(string):
    return string[:2]
1
andyzinsser

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.

0
Julien Kieffer
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]
0
J. Doe

Pour être complet: au lieu d'utiliser def, vous pouvez donner un nom à une fonction lambda:

first2 = lambda s: s[:2]
0
Thorsten Kranz