Python 从字符串列表中删除双引号和特殊字符
我对python很陌生 我有这样一份清单:Python 从字符串列表中删除双引号和特殊字符,python,string,list,character,Python,String,List,Character,我对python很陌生 我有这样一份清单: ['SACOL1123', "('SA1123', 'AAW38003.1')"] ['SACOL1124', "('SA1124', 'AAW38004.1')"] ['SACOL1123', 'SA1123', 'AAW38003.1'] ['SACOL1124', 'SA1124', 'AAW38004.1'] 我想删除额外的双引号和偏执,所以看起来像这样: ['SACOL1123', "('SA1123', 'AAW38003.1')"]
['SACOL1123', "('SA1123', 'AAW38003.1')"]
['SACOL1124', "('SA1124', 'AAW38004.1')"]
['SACOL1123', 'SA1123', 'AAW38003.1']
['SACOL1124', 'SA1124', 'AAW38004.1']
我想删除额外的双引号和偏执,所以看起来像这样:
['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]
但输出与输入列表完全相同。我该怎么做呢?这可以使用
ast.literal\u 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']]
这可以使用
ast.literal\u 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']]
这可以通过将列表中的每个项目转换为字符串,然后用空字符串替换标点符号来实现。希望这有助于:
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']]
你有一个额外的
“
['SACOL1123',”('SA1123','aaw3803.1')“]
是一个由两个元素组成的列表,这是有意的吗?也就是说,你真的想把它推到一个由三个元素组成的列表中?或者输入列表中有输入错误吗?我知道,我正在尝试删除它…这不是一个输入错误,这是我想解决的问题你有一个额外的”
['SACOL1123',“('SA1123','aaw3803.1')”]
是一个包含两个元素的列表,这是故意的吗?也就是说,你真的想把它归纳成三个元素的列表吗?或者输入列表中是否有输入错误?我知道,我正在尝试删除它…这不是输入错误,这是我想要解决的问题。谢谢,你能解释一下x[0]和x[1]在这里指的是什么吗?列表的第一和第二个元素。谢谢,你能解释一下x[0]和x[1]在这里指的是什么吗?列表的第一和第二个元素。