2017-02-07 15 views
-4

Я хотел бы заменить ':', ' ', '-', '(' и ')' с подчеркиванием для элементов в этом списке:Заменяет специальные символы в списке питона

columns = ['Region', 'Cat', 'Bld', 'Fbld', 'Ht(m)', 'H:W', 'Fperv', 'Froof', 'wall type', 'roof type', 'road-type', 'Tmn', 'Tmx', 'Notes'] 

Так что:

columns = ['Region', 'Cat', 'Bld', 'Fbld', 'Ht_m', 'H_W', 'Fperv', 'Froof', 'wall_type', 'roof_type', 'road_type', 'Tmn', 'Tmx', 'Notes'] 

Цель состоит в том, чтобы заменить все специальные символы и пространство так, чтобы их можно было прочитать в таблице sql. Спасибо за любую помощь.

+0

Возможный дубликат [Как поставить параметризованный запрос SQL в переменной, а затем выполнить в Python] (http://stackoverflow.com/questions/ 1633332/как к пут-параметризованных-SQL-запросов в переменной-и-то-выполнить-в-питон) – cpburnz

ответ

1

Поскольку вы предоставили список специальных символов, вы можете:

  • создать таблицу перевода с использованием Dict понимания
  • применить перевод к элементам вашего списка

код:

orig_list = ['Region', 'Cat', 'Bld', 'Fbld', 'Ht(m)', 'H:W', 'Fperv', 'Froof', 'wall type', 'roof type', 'road-type', 'Tmn', 'Tmx', 'Notes'] 

d = {ord(x):"_" for x in ":-() "} 
new_list = [x.translate(d) for x in orig_list] 

print(new_list) 

результат:

['Region', 'Cat', 'Bld', 'Fbld', 'Ht_m_', 'H_W', 'Fperv', 'Froof', 'wall type', 'roof type', 'road_type', 'Tmn', 'Tmx', 'Notes'] 

Классическое решение регулярное выражение в качестве альтернативы:

import re 
new_list = [re.sub("[:\-() ]","_",x) for x in orig_list]