我们将讨论如何在 Python 中从字符串中删除引号的不同方法。
replace()
该replace()函数将字符串的给定部分替换为另一个子字符串。我们可以使用此函数从 Python 中的字符串中删除双引号。
为此,我们将在函数中提供双引号作为参数,以替换为空字符串。
请参阅下面的代码。
a1 = 'samp"le s"tring' a2 = a1.replace('"','') print(a2)
输出:
sample string
re.sub()
我们可以使用正则表达式模式来识别和替换使用该re.sub()函数的字符串的一部分。我们可以用正则表达式模式识别双引号并将它们替换为空字符串。
import re a1 = 'samp"le s"tring' a2 = re.sub('"','',a1) print(a2)
for
我们可以使用循环遍历字符串for并单独比较每个元素。如果元素不是双引号,那么我们将其附加到一个新字符串中。这个新字符串不会有双引号。
例如,
a1 = 'samp"le s"tring' a2 = '' for i in a1: if(i not in '"'): a2 = a2 + i print(a2)
join()
该join()函数将可迭代的元素组合为单个字符串。我们可以使用此函数从字符串中删除双引号。
首先,我们将使用列表推导创建字符串中所有字符的列表,将每个字符与双引号进行比较。然后,我们将使用该join()函数组合此列表中的元素以返回最终字符串。
a1 = 'samp"le s"tring' a2 = ''.join(i for i in a1 if i not in '"') print(a2)
strip()
我们使用strip()Python 中的函数从字符串的开头或结尾删除字符。如果引号存在于字符串的开头或结尾,我们可以使用此方法删除引号。
a1 = '"sample string"' a2 = a1.strip('\"') print(a2)
lstrip()
该lstrip()函数可以从字符串的开头删除字符。使用此函数,我们可以删除字符串开头的双引号。
a1 = '"sample string' a2 = a1.lstrip('\"') print(a2)
rstrip()
此功能与上一个方法相反,从字符串末尾删除字符。它可以从字符串末尾删除双引号。
a1 = 'sample string"' a2 = a1.rstrip('\"') print(a2)
startswith()
在 Python 中,我们使用该startswith()函数来检查字符串是否以某个字符开头。我们可以使用此函数从字符串的开头删除双引号。
我们将检查字符串是否以双引号开头,如果返回 True,则对第一个字符进行切片。
a1 = '"sample string' if a1.startswith('"'): a2 = a1[1:] print(a2)
endswith()
在 Python 中,我们使用该endswith()函数来检查字符串是否以某个字符结尾。我们可以使用此函数从字符串末尾删除双引号。
我们将检查字符串是否以双引号结尾,如果返回 True,则对最后一个字符进行切片。
a1 = 'sample string"' if a1.endswith('"'): a2 = a1[:-1] print(a2)
eval()
仅当您在开头和结尾处有双引号作为引号时,此方法才有效。
该eval()函数接受一个参数并将其作为 Python 表达式执行。因此,如果我们传递一个字符串并且它在开始和结束位置都有双引号,那么该eval()函数会将其作为普通字符串返回,并在此过程中删除双引号。
a1 = '"sample string"' a2 = eval(a1) print(a2)
但是,这种方法被认为是不安全的,不应用于不受信任的输入。
ast.Literal_Eval()
我们可以使用ast.literal_eval()类似于前面方法的功能。此函数被认为是该函数的更安全替代方案,eval()因为它只接受有效的 Python 数据类型。
ast.literal_eval()
我们可以使用它从 Python 中的字符串中删除双引号。
import ast a1 = '"sample string"' a2 = ast.literal_eval(a1) print(a2)
json.Loads()
该json.loads()函数将 JSON 字符串解析并反序列化为 Python 对象。我们可以通过将字符串传递给此函数来删除字符串中多余的双引号。
json.loads()
此功能也适用于与前一种方法类似的情况。双引号应该存在于字符串的开头和结尾。
import json a1 = '"sample string"' a2 = json.loads(a1) print(a2)
所有讨论的删除双引号的方法也可用于删除单引号。我们只需要在各自的方法中用单引号代替双引号。如果要在其中包含单引号,请记住用双引号定义字符串。
我们现在将在下面展示一些方法的示例。
为此,我们将在列表推导中将双引号更改为单引号。我们将join()出于相同的目的并以相同的方式使用该功能。
a1 = "samp'le s'tring" a2 = ''.join(i for i in a1 if i not in "'") print(a2)
如前所述,该replace()函数可以通过用空字符串替换单引号来从 Python 中的字符串中删除单引号。
a1 = "samp'le s'tring" a2 = a1.replace("'",'') print(a2)
该re.sub()函数的工作方式也类似,但使用正则表达式模式来检测引号。
import re a1 = "samp'le s'tring" a2 = re.sub("'",'',a1) print(a2)
使用该strip()函数,我们可以删除字符串开头或结尾的单引号。
a1 = "'sample string'" a2 = a1.strip("\'") print(a2)
现在让我们了解如何在从 CSV 文件中读取数据时删除引号。
csv.reader()
CSV 是一个简单的逗号分隔文件。open()我们可以使用Python中的函数读取 CSV 文件。该csv.reader()文件可以将 CSV 文件的内容解析为行。
open()
函数中有一个quotechar参数csv.reader()。使用它,我们可以指定用作 CSV 文件中值的引号的字符。因此,在用 Python 读取文件后,它们将被删除。
quotechar
例如,如果我们正在读取以下 CSV 文件。
"name","age" "java2blog","15"
然后在使用上述方法读取文件后,引号将被删除。
请参阅下面的代码
import csv with open('csvsample.csv', 'r') as f: s= csv.reader(f, delimiter=',', quotechar = '"') for i in s: for j in i: print(j)
name age java2blog 15
我们已经单独显示了每个值,我们可以观察到看不到任何报价。
pandas.read_Csv()
另一种方法是将文件读入 Python 中的 DataFrame。我们将使用该pandas.read_csv()函数读取文件并将其内容存储在 DataFrame 中。引号将以这种方式被删除。
pandas.read_csv()
import pandas as pd df = pd.read_csv('csvsample.csv') print(df)
name age 0 java2blog 15
DataFrame 以行和列的形式组织数据。我们可以拥有存储字符串值的列。我们将讨论如何删除 DataFrame 中值的引号。
pandas.str.replace()
该pandas.str.replace()函数可以替换Series对象中的字符。它使用正则表达式来替换字符。
Series
我们可以使用此功能删除引号。我们将用空字符串替换它们。
import pandas as pd df = pd.DataFrame({'A': ['"hello"', 'h"i', 'he"y"']}) df['A'] = df['A'].str.replace('"',"") print(df)
A 0 hello 1 hi 2 hey
在本文中,我们讨论了如何在 Python 中从字符串中删除引号。我们处理了许多在 Python 中从字符串中删除双引号的方法。所有方法也可以用于单引号。我们还讨论了如何在读取 CSV 文件并将它们从 DataFrames 中删除时避免使用引号。
这就是关于如何在 Python 中从字符串中删除引号的全部内容。
原文链接:https://codingdict.com/