2017-02-07 85 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

由於您提供的特殊字符的列表,你可以:

  • 使用字典理解
  • 翻譯應用到你的列表

代碼的元素創建一個翻譯表:

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]