Ich habe eine Liste:
my_list = ['element1t0238.94', 'element2t2.3904', 'element3t0139847']
Wie kann ich die löschen t
und alles danach, um dieses Ergebnis zu erhalten:
['element1', 'element2', 'element3']
Benutzer808545
Ich habe eine Liste:
my_list = ['element1t0238.94', 'element2t2.3904', 'element3t0139847']
Wie kann ich die löschen t
und alles danach, um dieses Ergebnis zu erhalten:
['element1', 'element2', 'element3']
Etwas wie:
>>> l = ['element1t0238.94', 'element2t2.3904', 'element3t0139847']
>>> [i.split('t', 1)[0] for i in l]
['element1', 'element2', 'element3']
Ich verstehe das fast. Was macht die 1 im Argument für die Aufteilung? Dasselbe gilt für den Index 0 nach den Klammern. Erstellt dies eine neue Liste, indem das nullte Element dessen verwendet wird, was i war? Ist die 1 dann nur eine weitere Teilung, die den Rest der Zeichenfolge effektiv loswird, wie es das OP wollte?
– Malik A. Rumi
19. November 16 um 1:59 Uhr
Da die Liste Zeichenketten enthält, ist die Variable i eine Zeichenkette. Also ruft i.split(‘t’, 1) die Methode split() von Strings auf. Pro die Dokumentation, ist der erste Parameter dieser Methode die Zeichenfolge, durch die geteilt werden soll, und der zweite die maximale Anzahl der durchzuführenden Teilungen. Die Methode gibt die Liste der Zeichenfolgen zurück, die sich aus der Durchführung der Teilung ergeben, also “[0]” gibt den ersten geteilten String in der Ergebnisliste zurück.
– jkl
29. März 17 um 22:30 Uhr
Als ich dies für meinen eigenen Code versuchte, gab es einen Fehler zurück, dass das Objekt „list“ kein Attribut „split“ hat. Ich bin verwirrt, wie ich das umgehen soll.
– keitereth24
28. Juli 17 um 19:19 Uhr
@ keitereth24 , Römische geteilte Liste von Zeichenfolgen. Möglicherweise haben Sie eine Liste von Listen
– AAI
26. April 18 um 16:20 Uhr
myList = [i.split('t')[0] for i in myList]
Versuchen Sie, jedes Element der Liste zu durchlaufen, es dann am Tabulatorzeichen zu teilen und es einer neuen Liste hinzuzufügen.
for i in list:
newList.append(i.split('t')[0])
Das funktioniert, aber Listenverständnisse sind ein viel besserer Weg, dies zu tun
– dave
14. Juli 11 um 16:05 Uhr
Liste nicht als Variablennamen verwenden. Sie können sich auch den folgenden Code ansehen:
clist = ['element1t0238.94', 'element2t2.3904', 'element3t0139847', 'element5']
clist = [x[:x.index('t')] if 't' in x else x for x in clist]
Oder direkte Bearbeitung:
for i,x in enumerate(clist):
if 't' in x:
clist[i] = x[:x.index('t')]
Ich musste eine Liste für die Merkmalsextraktion in zwei Teile aufteilen lt,lc:
ltexts = ((df4.ix[0:,[3,7]]).values).tolist()
random.shuffle(ltexts)
featsets = [(act_features((lt)),lc)
for lc, lt in ltexts]
def act_features(atext):
features = {}
for word in nltk.word_tokenize(atext):
features['cont({})'.format(word.lower())]=True
return features
Lukas
Lösung mit Karte und Lambda-Ausdruck:
my_list = list(map(lambda x: x.split('t')[0], my_list))
.