我的问题类似于excel formula to replace or stubstitute only text that starts with a certain letter,但我需要Python代码。我想做嵌套,但它只替换第一个字符而不是整个元素。
元素也是字母数字
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个唯一值。
答案 0 :(得分:1)
您的新编辑表示您想替换整个单词。只需检查元素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
答案 1 :(得分:0)
可以使用list-comprehension
List = ['qwe'+i[1:] if i.startswith('F') else i for i in List]
答案 2 :(得分:0)
通过使用列表理解,我们可以做到这一点:
def unique_elements(a):
newlist = []
for i in a:
if i not in newlist:
newlist.append(i)
return newlist
您可以将字母“ F”替换为要替换起始字母的字符串中的任何其他字母。
答案 3 :(得分:0)
尝试:
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'
等...