2016-08-01 7 views
1

Das mag seltsam erscheinen, aber ich versuche, einen Teil eines in einer Liste enthaltenen Elements zu entfernen. Grundsätzlich versuche ich, ein bestimmtes Zeichen aus mehreren Listenelementen zu entfernen. Zum BeispielElement aus einem Listenelement entfernen?

list = ['c1','c2','c3','d1','s1'] 
list.remove('c') 

Ich weiß, dass das tun würde nicht funktionieren, aber ist es eine Möglichkeit, den „c“ s in der Liste zu entfernen, und nur die „c“ s in Python 3?

+0

Was Ihre erwartete Ausgabe ist? –

Antwort

4
lst = [s.replace('c','') for s in lst] 
# ['1','2','3','d1','s1'] 

Liste Verständnis sind dein Freund. Beachten Sie auch, dass die "Liste" ein Schlüsselwort in Python ist. Daher empfehle ich Ihnen dringend, nicht als Variablennamen zu verwenden.

+0

Die Variablenliste war ein Beispiel. Dies sollte kein funktionaler Python-Code sein. Aber vielen Dank! –

2

Verwenden Listenkomprehensionen,

list = ['c1','c2','c3','d1','s1'] 

list_ = [ x for x in list if "c" not in x ] # removes elements which has "c" 
print list_ # ['d1', 's1'] 
+1

Ah. Ich dachte nicht an diese Interpretation der Frage, das könnte sehr gut sein, wonach der Fragesteller sucht. +1 – James

0
list1 = ['c1','c2','c3','d1','d2'] 

list2 = [] 

for i in range (len(list1)): 
    if 'c' not in list1[i]: 
     list2.append(list1[i]) 

print (list2) #['d1', 'd2'] 

und auch dieser Link kann hilfreich

Link one