![](/img/trans.png)
[英]How to replace special characters(double quotes to single quotes) from a list using python so that my list become a 2D list?
[英]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.