在python中删除列表中字符串末尾的特定字符
假设我有一个类似这样的列表:在python中删除列表中字符串末尾的特定字符,python,Python,假设我有一个类似这样的列表: lst = ['Joe C', 'Jill', 'Chad', 'Cassie C'] 我想从每个字符串中删除最后一个字符,如果该字符是“C”。现在我陷入了这样的僵局: no_c_list = [i[:-1] for i in lst if i[-1:] == 'C'] 但是,这将返回以下列表: ['Joe', 'Cassie'] 试试这个: lst = ['Joe C', 'Jill', 'Chad', 'Cassie C'] new_list = [ i
lst = ['Joe C', 'Jill', 'Chad', 'Cassie C']
我想从每个字符串中删除最后一个字符,如果该字符是“C”。现在我陷入了这样的僵局:
no_c_list = [i[:-1] for i in lst if i[-1:] == 'C']
但是,这将返回以下列表:
['Joe', 'Cassie']
试试这个:
lst = ['Joe C', 'Jill', 'Chad', 'Cassie C']
new_list = [ i[:-2] if i[-2:] == " C" else i for i in lst ]
print(new_list)
您可以使用正则表达式:
>>> lst = ['Joe C', 'Jill', 'Chad', 'Cassie C']
>>> import re
>>> [re.sub(r' C$', '', s) for s in lst]
['Joe', 'Jill', 'Chad', 'Cassie']
使用:
输出
从文件中:
返回已删除尾随字符的字符串副本。这个
chars参数是一个字符串,指定要输入的字符集
删除
此外,如@dawg所述:
result = [e.rstrip(' C') for e in lst]
如果您还想删除尾随空格。是否计划在“C”和“name”之间留出空格?这是否回答了您的问题?或者[e.rstrip'C'表示lst中的e]如果不需要尾随空格…请注意,这将错误地从'Joe CC'中删除'CC'。
['Joe ', 'Jill', 'Chad', 'Cassie ']
result = [e.rstrip(' C') for e in lst]