简体   繁体   中英

Split elements in a list by character

I have a list that was initially a dataframe and now looks like this:

[['asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks','asfsd|ksjdsf',
'asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks']]

I don't know how to split each element in between | to create a new list with all of them.

I did the following:

import pandas as pd
df= pd.read_csv('movie_metadata.csv')
palabras_c= df['plot_keywords']
data_palabras= pd.DataFrame(palabras_c).dropna() 
d=data_palabras.T
d2=d.values.tolist()

l =[]
for i in range(len(d2)):
  x= "".join(d2[i].split("|"))
  l.append(x)
  print l

But I get an AttributeError :

Traceback (most recent call last)
<ipython-input-186-a57adb3fa668> in <module>()
   l =[]
   for i in range(len(d2)):
   --->  x= "".join(d2[i].split("|"))
         l.append(x)


    AttributeError: 'list' object has no attribute 'split'´

Try this

a = [['asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks','asfsd|ksjdsf', 'asfsd|ksjdsf|jskks''asfsd|ksjdsf|jskks']][0]
l =[]
for i in range(len(a)):
    x= "".join(a[i].split("|"))
    l.append(x)

print l

output :

['asfsdksjdsfjskks', 'asfsdksjdsfjskks', 'asfsdksjdsf', 'asfsdksjdsfjskksasfsdksjdsfjskks']

Does list.split('|') not work? What have you tried?
Also, there appears to be a small error in the one item seperator

l=['asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks','asfsd|ksjdsf','asfsd|ksjdsf|jskks','asfsd|ksjdsf|jskks']

word_list = []

for w in l:
    for k in w.split('|'):
        word_list.append(k)

print word_list

Output:

['asfsd', 'ksjdsf', 'jskks', 'asfsd', 'ksjdsf', 'jskks', 'asfsd', 'ksjdsf', 'asfsd', 'ksjdsf', 'jskks', 'asfsd', 'ksjdsf', 'jskks']

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM