Как разбить элементы списка? - PullRequest
68 голосов
/ 14 июля 2011

У меня есть список:

my_list = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847']

Как я могу удалить \t и все после, чтобы получить этот результат:

['element1', 'element2', 'element3']

Ответы [ 6 ]

82 голосов
/ 14 июля 2011

Что-то вроде:

>>> l = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847']
>>> [i.split('\t', 1)[0] for i in l]
['element1', 'element2', 'element3']
29 голосов
/ 14 июля 2011
myList = [i.split('\t')[0] for i in myList] 
7 голосов
/ 14 июля 2011

Попробуйте перебрать каждый элемент списка, затем разделить его по символу табуляции и добавить в новый список.

for i in list:
    newList.append(i.split('\t')[0])
4 голосов
/ 14 июля 2011

Не используйте список в качестве имени переменной.Вы также можете взглянуть на следующий код:

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]

Или редактирование на месте:

for i,x in enumerate(clist):
    if '\t' in x:
        clist[i] = x[:x.index('\t')]
0 голосов
/ 16 июля 2018

Мне пришлось разделить список для извлечения объектов на две части 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
0 голосов
/ 03 июля 2016
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   
...