繁体   English   中英

从字符串列表 python 中删除双引号和特殊字符

[英]Remove double quotes and special characters from string list python

我是 python 的新手。

我有一个这样的列表:

['SACOL1123', "('SA1123', 'AAW38003.1')"]
['SACOL1124', "('SA1124', 'AAW38004.1')"]

我想删除额外的双引号和括号,所以它看起来像这样:

['SACOL1123', 'SA1123', 'AAW38003.1']
['SACOL1124', 'SA1124', 'AAW38004.1']

这就是我设法做到的:

newList = [s.replace('"(', '') for s in list]
newList = [s.replace(')"', '') for s in newList]

但是 output 与输入列表完全一样。 我该怎么做?

这可以使用ast.literal_eval 列表中的第二个元素是有效 Python 元组的字符串表示形式,您可以安全地对其进行评估。

[[x[0]] + list(ast.literal_eval(x[1])) for x in lst]

代码

import ast

lst = [['SACOL1123', "('SA1123', 'AAW38003.1')"],
       ['SACOL1124', "('SA1124', 'AAW38004.1')"]]

output = [[x[0]] + list(ast.literal_eval(x[1])) for x in lst]

# [['SACOL1123', 'SA1123', 'AAW38003.1'],
#  ['SACOL1124', 'SA1124', 'AAW38004.1']]

这可以通过将列表中的每个项目转换为字符串,然后用空字符串替换标点符号来完成。 希望这可以帮助:

import re

List = [['SACOL1123', "('SA1123', 'AAW38003.1')"], 
        ['SACOL1124', "('SA1124', 'AAW38004.1')"]]

New_List = []
for Item in List:
    New_List.append(re.sub('[\(\)\"\'\[\]\,]', '', str(Item)).split())

New_List
Output: [['SACOL1123', 'SA1123', 'AAW38003.1'], 
         ['SACOL1124', 'SA1124', 'AAW38004.1']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM