有没有可能减少这段代码?
Nomefilm = selected_channel[1]
Nomefilm = Nomefilm.replace('.','').replace('-','').replace('(','').replace(')','').replace('[HD]','').replace('2013','').replace('2014','').replace('2015','').replace('2016','')
Nomefilm = Nomefilm.replace('PrimaVisione 1','').replace('PrimaVisione 2','').replace('PrimaVisione 3','').replace('PrimaVisione 4','').replace('PrimaVisione 5','').replace('PrimaVisione 6','').replace('PrimaVisione 7','')
Nomefilm = Nomefilm.replace('PrimaVisione 8','').replace('PrimaVisione 9','').replace('PrimaVisione 10','').replace('PrimaVisione 11','').replace('PrimaVisione 12','').replace('PrimaVisione 13','').replace('PrimaVisione 14','')
Nomefilm = Nomefilm.replace('PrimaVisione 15','').replace('PrimaVisione 16','').replace('PrimaVisione 17','').replace('PrimaVisione 18','').replace('PrimaVisione 19','').replace('PrimaVisione 20','').replace('PrimaVisione 21','')
Nomefilm = Nomefilm.replace('Primafila 1-2','').replace('Primafila 3-4','').replace('Primafila 5-6','').replace('Primafila 7-8','').replace('Primafila 9-10','').replace('Primafila 11-12','').replace('Primafila 13-14','').replace('Primafila 15','')
Nomefilm = Nomefilm.replace('Primafila 16-17','').replace('Primafila 18','').replace('Primafila 19','')发布于 2017-05-04 20:40:06
编写一个函数来擦除任何目标字符串列表。
def erase( s, target):
for t in target:
s = s.replace( t, '')
return s然后
TO_ERASE = ( '.', '-', ',' , '(', ')', '[HD]', '2013',
...
'Primafila 19',
)
Nomefilm = erase( Nomefilm, TO_ERASE)您还可以使用正则表达式(Python re模块)。例如,您可以使用删除所有以"Primafila "开头、以一定数量的数字和连字符结尾的字符串
s = re.sub( 'Primafila\ [0-9\-]+', '', s)请注意,这与您的代码并不完全相同:它将很高兴地将"Primafila 2345-------g"转换为"g"。它还可能要求您学习正则表达式的语法,这实际上是一种不同的语言(一种比Python更神秘的语言)。但是,如果相似字符串的数量变得太大而无法合理地作为列表提供,则将其作为单个表达式处理可能是更好的方法。
正则表达式可以非常强大。如果正则表达式匹配"Primofila ",后跟一个一位或两位数字,然后可选地后跟一个连字符和另一个一位或两位数字,则该正则表达式将为'Primofila\ [0-9]{1,2}(-[0-9]{1,2})?'
https://stackoverflow.com/questions/43782669
复制相似问题