使用python从字符串列表中提取字符串

发布于 2021-01-29 16:31:25

当我使用以下代码读取CSV标头时

def  read_header(gram):
    CSV_tag_read = csv.reader(open("Dataset/MALE_Training/"+str(gram)+"/"+str(gram)+".csv","rb"),delimiter='"')
    header=CSV_tag_read.next()

标头(csv文件的第一行)如下

Sample1"('CC', 'CD')"('CD', 'DT')"('DT', 'EX')"('EX', 'IN')"('IN', 'JJ')"('JJ', 'JJR')"('JJR', 'JJS')"('JJS', 'MD')"('MD', 'NN')"('NN', 'NNS')"('NNS', 'PRP')"('PRP', 'RB')"('RB', 'RBR')"('RBR', 'RP')"('RP', 'TO')"('TO', 'VB')"('VB', 'VBD')"('VBD', 'VBG')"('VBG', 'VBN')"('VBN', 'VBP')"('VBP', 'VBZ')"('VBZ', 'WDT')"('WDT', 'WP')"('WP', 'WRB')

我希望我的输出作为列表包含

['Sample1', '(CC, CD)', '(CD, DT)', '(DT, EX)', '(EX, IN)', '(IN, JJ)', '(JJ, JJR)', '(JJR, JJS)', '(JJS, MD)', '(MD, NN)', '(NN, NNS)', '(NNS, PRP)', '(PRP, RB)', '(RB, RBR)', '(RBR, RP)', '(RP, TO)', '(TO, VB)', '(VB, VBD)', '(VBD, VBG)', '(VBG, VBN)', '(VBN, VBP)', '(VBP, VBZ)', '(VBZ, WDT)', '(WDT, WP)', '(WP, WRB)']

关注者
0
被浏览
155
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用ast.literal_eval

    >>> import ast
    >>> a = "('TO', 'RP', 'TO')"
    >>> b = ast.literal_eval(a)
    >>> b
    ('TO', 'RP', 'TO')
    >>> b[0]
    'TO'
    

    要么

    >>> [x.strip("' ") for x in a.strip('()').split(',')]
    ['TO', 'RP', 'TO']
    

    *对应于更新的问题的 *更新的答案

    with open('/path/to/csv-file.csv') as f:
        reader = csv.reader(f, delimiter='"')
        header = [column.replace("'", "") for column in header]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看