python3: remplacer l'un des éléments de piqûre double dans une liste avec une autre chaîne comme:

voix
0

Il y a plusieurs éléments en double srting dans ma liste. Je veux changer un de ces éléments avec un autre élément de chaîne. Par exemple:

a = ['b','c','d','b','b']

Je veux changer « b » avec un indice 3 avec « x »

a = ['b','c','d','x','b']

Créé 02/09/2018 à 05:16
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Lire vos commentaires il semble que vous ne vous inquiétez pas si tous les doublons sont remplacés. Ainsi, vous pouvez le faire en une ligne avec ce qui suit:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index 1] if c == i]) == 1 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','x']

Si vous voulez vraiment que mettre à jour le 2ème exemple les œuvres de suivantes dans une ligne aussi:

a = ['b','c','d','b','b']
new_a = [i if len([c for c in t[:index 1] if c == i]) != 2 else "x" for index, i in enumerate(a)]

print(new_a)

['b','c','d','x','b']
Créé 02/09/2018 à 05:39
source utilisateur

voix
0

Fondamentalement, les opérations de liste sont les suivants:

  • a.pop(idx)(Sauteront point sur l' index idx)
  • a.insert(idx, val)(Va insérer valeur valà la position idx)

Pourtant, c'est un problème de programmation vraiment mal définie, avec beaucoup de questions ouvertes:

  1. peuvent les duplications se produire plus de 2 fois?
  2. le remplacement doit se faire que pour le 1er article?
  3. le remplacement doit être fait avec le caractère constant, ou peut-être une séquence?

Ça sent comme les devoirs. Si oui, S'il vous plaît le faire sans stackoverflow ....

Créé 02/09/2018 à 05:28
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more