diviser les éléments d'une liste en python
Je sais que c'est une question assez basique, mais je suis nouveau en python et je ne peux pas comprendre comment le résoudre.
J'ai une liste:
list = ['element1t0238.94', 'element2t2.3904', 'element3t0139847']
Et je veux supprimer le ' t ' et tout après. Je pensais diviser chaque élément au ' t ' afin que je puisse supprimer tous les autres éléments de la liste. Cependant, quand j'essaie de faire list[0:].split('t')
je reçois AttributeError: l'objet' list 'n'a pas d'attribut 'split'. J'ai aussi essayé de faire toute la liste en une chaîne, mais cela a amené un tout autre tas de problème. Toutes les suggestions seraient appréciées.
7 réponses
Quelque Chose comme:
>>> l = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847']
>>> [i.split('\t', 1)[0] for i in l]
['element1', 'element2', 'element3']
Essayez de parcourir chaque élément de la liste, puis de le diviser au niveau du caractère de tabulation et de l'ajouter à une nouvelle liste.
for i in list:
newList.append(i.split('\t')[0])
N'utilisez pas list comme nom de variable. Vous pouvez également jeter un oeil au code suivant:
clist = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847', 'element5']
clist = [x[:x.index('\t')] if '\t' in x else x for x in clist]
Ou édition sur place:
for i,x in enumerate(clist):
if '\t' in x:
clist[i] = x[:x.index('\t')]
J'ai dû diviser une liste pour l'extraction de fonctionnalités en deux parties 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
Convertissez simplement votre liste en chaîne par str(variable)
, puis utilisez la méthode split()
cela fonctionnera
sentences = ("The cat ate a big mouse. This was becasue the mouse was annoying him")
import re
liste = re.findall(r"[\w']+|[.,!?;]", sentences)
nodu = []
for x in liste:
if x not in nodu:
nodu.append(x)
print(nodu)
pos = []
for word in liste:
if word in nodu:
pos.append(nodu.index(word)+1)
print(pos)
lpos = []
for word in liste:
lpos.append(liste.index(word)+1)
nodus = (str(nodu))
file=open("t3.txt","w")
file.write(nodus)
file.write("\n")
file.write(str(pos))
file.close()
for number in lpos:
for word in liste:
number = word
print(number)
break