如何仅替换 Python 列表中以某个字母开头的文本?

我的问题类似于excel 公式来替换或仅替换以某个字母开头的文本,但我需要一个 Python 代码。我正在尝试嵌套 if 但它只替换第一个字符而不是整个元素。


元素也是字母数字


List= ['F43.9', 'F53.2', 'H10.9', 'H60.9', 

       'S83.6', 'S01.88', 'J18.9', 'K35.9', 'S42.20', 'J06.9'....]

所以我想要的输出是:


List= ['qwe', 'qwe', 'equal', 'equal', 'chronic', 'chronic', 'liable', 'priority', 'chronic', 'liable',...]


我需要替换F以F43.9,F53.2,etc.开头的所有值。与"qwe". 对于不同的字母也类似。列表中有 30,000 个元素,有 600 个唯一值。


慕神8447489
浏览 274回答 3
3回答

人到中年有点甜

您的新编辑表明您要替换整个单词。只需检查元素是否是startswith()您期望的字符,然后将其替换为所需的字符串。不过,这可能会变得有点健壮,因此您最好使用字典。for i in range(0, len(list)):    if list[i].startswith('F'):        list[i] = 'qwe'    elif list[i].startswith('H'):        list[i] = 'equals'    elif list[i].startswith('S'):        list[i] = 'chronic'map = {    'F': 'qwe',    'H': 'equals'    'S': 'chronic'     # etc etc}for i in range(0, len(list)):    if list[i][0] in map.keys():    # check if first char is a key in map        list[i] = map[list[i][0]]   # if it is, replace list[i] with the value in map

慕慕森

通过使用列表理解,我们可以通过以下方式实现:new_list = ['qwe' + List[i][1:] if List[i].startswith('F') else List[i] for i in range(len(List)) ]print(new_list)['qwe43.9','qwe53.2','H10.9','H60.9', 'S83.6','S01.88','J18.9','K35.9','S42.20','J06.9']您可以将字母“F”替换为字符串中要替换开头字母的任何其他字母

慕盖茨4494581

尝试这个:for i in range(0, len(list)):    if list[i].startswith('F'):        list[i] = 'qwe'    elif list[i].startswith('H'):        list[i] = 'chronic'    elif list[i].startswith('S'):        list[i] = 'liable'    else list[i].startswith('J'):        list[i] = 'priority'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python