Comment ajouter 'p' uniquement si ce préfixe est manquant, j'essaye d'obtenir ['pa', 'pb', 'pc'] , j'utilise python3.6
>>> l=['a','b','pc']
>>> ['p'+x for x in l]
['pa', 'pb', 'ppc']
>>>
>>> ['p'+x for x in l if not x.startswith('p')]
['pa', 'pb']
3 Réponses :
Essayez ceci.
['p' + x if x[0] != 'p' else x for x in l]
Désolé, cela donne le même que le vôtre, si vous voulez les trois alors essayez.
['p' + x for x in l if x[0] != 'p']
OP doit se rappeler qu'il s'agit de chaînes, qui ne sont que des tableaux de caractères. Bon travail @cmxu
Essayez ceci:
new_list = ['p' + x if not x[0] == 'p' else x for x in l]
ou en une seule ligne:
new_list = ['p'+x for x in l if x[0]!="p"] + [x for x in l if x[0]=="p"]
Ou ceci, si vous ne souhaitez pas enregistrer dans une nouvelle liste:
for x in l:
if(x[0]!='p'):
l[l.index(x)]='p'+x
Doit utiliser enumerate pour obtenir l'index de l'élément de la liste, plutôt que l [l.index (x)] . Vous devriez également utiliser str.startswith () , plutôt que x [0]! = 'P'
['p' + x sinon x.starts with ('p') else x for x in l]