Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅替换Python列表中以某个字母开头的文本?_Python_List_Replace_Alphanumeric - Fatal编程技术网

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

如何仅替换Python列表中以某个字母开头的文本?,python,list,replace,alphanumeric,Python,List,Replace,Alphanumeric,我的问题与类似,但我需要Python代码。我正在尝试嵌套if,但它只替换第一个字符,而不是整个元素 元素也是字母数字的 List= ['F43.9', 'F53.2', 'H10.9', 'H60.9', 'S83.6', 'S01.88', 'J18.9', 'K35.9', 'S42.20', 'J06.9'....] 因此,我期望的输出是: 列表=['qwe','qwe','equal','equal','Chrome','Chrome','Responsible','p

我的问题与类似,但我需要Python代码。我正在尝试嵌套if,但它只替换第一个字符,而不是整个元素

元素也是字母数字的

List= ['F43.9', 'F53.2', 'H10.9', 'H60.9', 
       'S83.6', 'S01.88', 'J18.9', 'K35.9', 'S42.20', 'J06.9'....]
因此,我期望的输出是:

列表=['qwe','qwe','equal','equal','Chrome','Chrome','Responsible','priority','Chrome','Responsible','Responsible','


其中我需要替换以
F
开头的所有值,例如
F43.9、F53.2等
。使用
“qwe”
。对于不同的字母表也是如此。列表中有30000个元素,有600个唯一值。

您的新编辑表示要替换整个单词。只需检查元素
startswith()
是否为所需的字符,然后将其替换为所需的字符串。不过,这可能会变得有点健壮,所以你最好使用字典


对于范围(0,len(列表))中的i:
如果列表[i].startswith('F'):
列表[i]=“qwe”
elif列表[i]。以('H')开头:
列表[i]=“等于”
elif列表[i]。开始使用('S'):
列表[i]=“慢性”
map={
‘F’:‘qwe’,
“H”:“等于”
“S”:“慢性”
#等等
}
对于范围(0,len(列表))中的i:
如果map.keys()中的列表[i][0]:#检查第一个字符是否是map中的键
list[i]=map[list[i][0]#如果是,用map中的值替换list[i]

可以使用
列表理解

List = ['qwe'+i[1:] if i.startswith('F') else i for i in List]

通过使用列表理解,我们可以通过以下方式实现:

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”替换字符串中要替换开头字母的任何其他字母。

尝试以下操作:

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'

等等。

你能通过迭代列表并检查每个项目来创建一个新的列表吗;如果项目以
F
开头,则将替换项/替换项添加到新列表中,否则,请添加项目本身。抱歉,我将再次编辑问题,因为您说过以“F”开头的字符串将替换为“qwe”,其他项目的条件是什么?如何确定哪个字符串应替换为“equal”,哪个字符串应替换为“chronic”等等?你能提供更多的细节吗?我正在做这个,在我发布我的答案后看到了AkshayaNevrekar的答案。他的回答更简洁明了,它给出的输出是List=['qwe43.9'、'Z53.2'、'H10.9'、'H60.9'、'S83.6',…]但我希望有一个输出,比如List=['qwe'、'qwe'、'equal'、'equal'、'chronic'、'problem'、'chronic'、'problem'、'chronic'、'chronic'、'H10.9'、'H60.9'、'S83.6',…]它给出的输出是['qwe43.9',]但是我希望有一个输出,比如['qwe'、'zxcasdasd'、'asdasdaxas'、'vbnvcvvb',…]它给出的输出是List=['qwe43.9'、'Z53.2'、'H10.9'、'H60.9'、'S83.6',…]但是我希望有一个输出,比如List=['qwe'、'qwe'、'equal'、'equal'、'chronic'、'problible'、'priority'、'chronic'、'chronic'、'chronic'、'chronic'