Очистка списка неоднородных фраз - PullRequest
0 голосов
/ 01 мая 2020

У меня есть список, который выглядит примерно так.

["['brill building pop",'quiet storm','ballad','easy listening',"motown'"," 'disco",'soul jazz',
'smooth jazz','soul','jazz','soft rock',"uk garage'"," 'chill-out",'german pop','salsa','r&b',
'chanson','rock',"pop'"," 'blues-rock",'vocal jazz','funk','oldies','pop rock',"downtempo'",
" 'hip hop",'classic rock','united states','germany',"adult contemporary'"," 'folk rock",'vocal',
'soundtrack','blues','female vocalist',"electronic'"," 'new wave",'urban','reggae','singer-songwriter',
 'swing','60s',"female'"," 'american",'80s','90s',"ambient']"]

Предполагается, что это выглядит так:

['brill building pop','quiet storm','ballad','easy listening','motown','disco','soul jazz',
'smooth jazz','soul','jazz','soft rock','uk garage','chill-out','german pop','salsa','r&b',
'chanson','rock','pop','blues-rock','vocal jazz','funk','oldies','pop rock','downtempo',
'hip hop','classic rock','united states','germany','adult contemporary','folk rock','vocal',
'soundtrack','blues','female vocalist','electronic','new wave','urban','reggae','singer-songwriter',
'swing','60s','female','american','80s','90s','ambient']

Как вы можете видеть, есть случайные апострофы, неполные квадратные скобки, пробелы и т.д. c. Элементы должны быть фразами, поэтому, хотя я не хочу удалять пробелы в середине слов, я хочу удалить их, если они появляются в начале или в конце. Есть ли простой способ сделать это?

1 Ответ

2 голосов
/ 01 мая 2020

Как это структурировано, это уже правильный список, просто с большим количеством дополнительных вещей, так что вы можете использовать replace() и strip(), например:

zmod = [zz.replace('\'', '').replace('[', '').replace(']', '').strip() for zz in z]
zmod
['brill building pop',
 'quiet storm',
 'ballad',
 'easy listening',
...
 'american',
 '80s',
 '90s',
 'ambient']

Есть конечно, более короткий подход к регулярным выражениям, но я считаю это наиболее читабельным.

...