在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]