删除python中的引号

2024-06-14 16:52:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python将txt数据作为列表导入。因此,在列表中的项目上有我不想要的双引号。我想删除它们,但我目前有一些困难。如果有人能帮我解决这个问题,我会很高兴的

python中的列表具有以下性质:

lst = ["'BEN','JIM'", "'GIN','ANN'"]

我想删除双引号,以便获得以下列表:

lst = ['BEN','JIM', 'GIN','ANN']

我试过这几行代码,但都没用:

lst = ["'BEN','JIM'", "'GIN','ANN'"]
lst = [x.strip("'") for x in lst] 
lst

结果并不是我所期望的:

["BEN','JIM", "GIN','ANN"]

再次感谢你的帮助


Tags: 数据项目代码txt列表forginstrip
3条回答

数据看起来类似于引用单个单元格的CSV文件。如果它看起来像只鸭子。。。使用读卡器为您剥离它们。这是一种嵌套列表理解,首先从列表中构建行,然后将它们展平为单个列表

>>> import csv
>>> lst = ["'BEN','JIM'", "'GIN','ANN'"]
>>> [cell for row in csv.reader(lst, quotechar="'") for cell in row]
['BEN', 'JIM', 'GIN', 'ANN']

使用replace()string函数去掉单引号,然后用逗号拆分

lst = ["'BEN','JIM'", "'GIN','ANN'"]
newlst = []
for pair in lst:
    for name in pair.replace("'", "").split(","):
        newlst.append(name)

您已将项目的显示表示法混淆为等同于其值。 看看你有什么:两个元素的列表:

["'BEN','JIM'", 
 "'GIN','ANN'"]

您希望获得包含四个元素的列表:

['BEN',
'JIM',
'GIN',
'ANN']

通过简单的字符操作无法做到这一点:您尝试的操作不会更改元素的数量

相反,您必须处理您拥有的元素,以1对2的方式进行拆分。 我将保持Python技术的低水平

new_lst = []
for two_name in lst:
    name_pair = two_name.split(',')
    new_lst.extend(name_pair)

输出:

["'BEN'", "'JIM'", "'GIN'", "'ANN'"]

现在,您可以使用以前的技术删除单引号,留下您想要的四个三个字母的名称

这能解决你的问题吗

相关问题 更多 >