嗨,如何删除字符串中的一些符号并列出其余单词?

时间:2018-11-08 10:18:50

标签: python string

我有一个如下所示的字符串变量。

AKT= PDK1 & ~ PTEN
AP1= JUN & (FOS | ATF2)
Apoptosis= ~ BCL2 & ~ ERK & FOXO3 & p53
ATF2= JNK | p38
ATM= DNA_damage
BCL2= CREB & AKT

我要删除'&''~''('')''or',并列出如下所示的单词。

AKT = ['PDK1', 'PTEN']
AP1 = ['JUN', 'FOS', 'ATF2']
...

2 个答案:

答案 0 :(得分:1)

这是您可以执行此操作的一种方式,

s = '''AKT= PDK1 & ~ PTEN
AP1= JUN & (FOS | ATF2)
Apoptosis= ~ BCL2 & ~ ERK & FOXO3 & p53
ATF2= JNK | p38
ATM= DNA_damage
BCL2= CREB & AKT'''


import re

final_list = []
for line in s.split('\n'):
    valid_words = re.findall(r'\w+', line)
    rhs = valid_words[0]
    lhs = valid_words[1:]
    final_list.append([rhs, lhs])

for item in final_list:
    print(item[0],'=', item[1])

输出:

AKT = ['PDK1', 'PTEN']
AP1 = ['JUN', 'FOS', 'ATF2']
Apoptosis = ['BCL2', 'ERK', 'FOXO3', 'p53']
ATF2 = ['JNK', 'p38']
ATM = ['DNA_damage']
BCL2 = ['CREB', 'AKT']

答案 1 :(得分:0)

您可以splitjoin,即

APT = APT.split('&') #APT = ['PDK1', '~PTEN']
APT = join(APT)
APT = split('~')
APT = join(APT)
...