Werte in einer Liste ändern – python

Ich habe diesen Code:

a=[['a','b','c'],['a','f','c'],['a','c','d']] for x in a: for y in x: if 'a' in x: x.replace('a','*')` 

Aber das Ergebnis ist:

  • Headless Browser für Python (Javascript Unterstützung ERFORDERLICH!) [Geschlossen]
  • Ersetzen Sie die Konsolenausgabe in Python
  • Suchen Sie nach einer beliebigen Anzahl von unbekannten Teilstrings anstelle von * in einer Liste von String
  • Lernen von diskreten HMM-Parametern in PyMC
  • Python Ctypes Null Termined String Block
  • Python csv list separator basierend auf regionalen Einstellungen
  •  a=[['a','b','c'],['a','f','c'],['a','c','d']] 

    Und bot a=[['b','c'],['f','c'],['c','d']]

    Was soll ich damit machen?

    6 Solutions collect form web for “Werte in einer Liste ändern – python”

    Wenn du alle Vorkommen von 'a' aus allen verschachtelten Sublisten entfernen möchtest, kannst du:

     >>> [[i for i in x if i != 'a'] for x in a] [['b', 'c'], ['f', 'c'], ['c', 'd']] 

    Wenn du sie mit asterisk ersetzen möchtest:

     >>> [[i if i != 'a' else '*' for i in x] for x in a] [['*', 'b', 'c'], ['*', 'f', 'c'], ['*', 'c', 'd']] 

    Hier geht es nicht um die Liste. Python-Strings sind unveränderlich:

     > a = 'x' > a.replace('x', 'bye') > a 'x' 

    Sie ersetzen 'a' mit '*' und dann das Ergebnis wegwerfen.

    Versuchen Sie so etwas wie:

     for i,value in enumerate(mylist): mylist[i] = value.replace('x', 'y') 

    Sie wollen das Element in der verschachtelten Liste wirklich ersetzen, so wie:

     a=[['a','b','c'],['a','f','c'],['a','c','d']] for row in a: for ix, char in enumerate(row): if char == 'a': row[ix] = '*' 

    Mit dem Ergebnis:

     a = [['*', 'b', 'c'], ['*', 'f', 'c'], ['*', 'c', 'd']] 
     a=[['a','b','c'],['a','f','c'],['a','c','d']] b=[[subelt.replace('a','*') for subelt in elt] for elt in a] print(b) # [['*', 'b', 'c'], ['*', 'f', 'c'], ['*', 'c', 'd']] 

    Das würde funktionieren:

     a=[['a','b','c'],['a','f','c'],['a','c','d']] for x in a: for y in x: if y == 'a': x.remove(y) 

    Oder noch einfacher:

     y = 'a' a=[['a','b','c'],['a','f','c'],['a','c','d']] for x in a: x.remove(y) 

    Das gibt Ihnen a=[['b','c'],['f','c'],['c','d']] .

    Hinweis: Weitere Informationen finden Sie in der Dokumentation zu remove () für Listen.

    Suche nach der Funktion ersetzen :

     str.replace(old, new[, count]) 

    Gib eine Kopie der Zeichenfolge zurück, wobei alle Vorkommen von Teilstring alt durch neu ersetzt wurden. Wenn die optionale Argumentzählung angegeben ist, werden nur die ersten Zählereignisse ersetzt.

    Python ist die beste Programmiersprache der Welt.