如何从字符串列表中删除双引号?
How to remove double quotes from list of strings?
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = []
for item in VERSION:
temp = item.replace('"','')
VERSIONS_F.append(temp)
print (VERSIONS_F)
在上面的代码块中 VERSIONS_F
也打印相同的 ["'pilot-2'", "'pilot-1'"]
,但我需要类似 ['pilot-2', 'pilot-1']
的东西。我什至尝试了 strip('"')
,但没有看到我想要的东西。
当您打印列表时,Python 将打印列表的表示形式,因此列表中的字符串不会像通常的字符串那样打印:
>>> print('hello')
hello
相比于:
>>> print(['hello'])
['hello']
添加不同的引号会导致 Python 到 select 相反的引号表示字符串:
>>> print(['\'hello\''])
["'hello'"]
>>> print(["\"hello\""])
['"hello"']
新手 Python 程序员经常犯错误,将控制台上打印的内容与实际值混淆。 print(x)
不会向您显示 x
的实际值(无论可能是什么),而是它的文本字符串表示形式。
例如:
>>> x = 0xFF
>>> print(x)
255
在这里,一个值被指定为其十六进制表示,但当然实际值只是 255(十进制表示),十进制表示是打印整数值时选择的标准表示。
变量的 'real' 值是一个抽象数值,表示它时所做的选择不会影响它。
在您的例子中,您使用 VERSION = ["'pilot-2'", "'pilot-1'"]
将字符串定义为将单引号作为字符串的一部分。所以,如果你想删除那些单引号,你可以:
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = []
for item in VERSION:
temp = item.replace("'",'')
VERSIONS_F.append(temp)
print (VERSIONS_F)
结果:
['pilot-2']
['pilot-2', 'pilot-1']
或者,更简单地说:
VERSIONS_F = [v.strip("'") for v in VERSION]
回复评论:
VERSION = ["'pilot-2'", "'pilot-1'"]
temp_list = ['pilot-1', 'test-3']
print(any(x in [v.strip("'") for v in VERSION] for x in temp_list))
您可以在几行中完成此操作:
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = [item [1:-1] for item in VERSION]
print(VERSIONS_F)
输出:
['pilot-2', 'pilot-1']
这种方式只是简单地从字符串中切出第一个和最后一个字符,假设“”总是在第一个和最后一个位置。
注意:Grismar 也很好地概述了幕后发生的事情
试试这个:
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = []
for item in VERSION:
temp = item.replace("'",'')
VERSIONS_F.append(temp)
print (VERSIONS_F)
它将打印 ['pilot-2','pilot-1']
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = []
for item in VERSION:
temp = item.replace('"','')
VERSIONS_F.append(temp)
print (VERSIONS_F)
在上面的代码块中 VERSIONS_F
也打印相同的 ["'pilot-2'", "'pilot-1'"]
,但我需要类似 ['pilot-2', 'pilot-1']
的东西。我什至尝试了 strip('"')
,但没有看到我想要的东西。
当您打印列表时,Python 将打印列表的表示形式,因此列表中的字符串不会像通常的字符串那样打印:
>>> print('hello')
hello
相比于:
>>> print(['hello'])
['hello']
添加不同的引号会导致 Python 到 select 相反的引号表示字符串:
>>> print(['\'hello\''])
["'hello'"]
>>> print(["\"hello\""])
['"hello"']
新手 Python 程序员经常犯错误,将控制台上打印的内容与实际值混淆。 print(x)
不会向您显示 x
的实际值(无论可能是什么),而是它的文本字符串表示形式。
例如:
>>> x = 0xFF
>>> print(x)
255
在这里,一个值被指定为其十六进制表示,但当然实际值只是 255(十进制表示),十进制表示是打印整数值时选择的标准表示。
变量的 'real' 值是一个抽象数值,表示它时所做的选择不会影响它。
在您的例子中,您使用 VERSION = ["'pilot-2'", "'pilot-1'"]
将字符串定义为将单引号作为字符串的一部分。所以,如果你想删除那些单引号,你可以:
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = []
for item in VERSION:
temp = item.replace("'",'')
VERSIONS_F.append(temp)
print (VERSIONS_F)
结果:
['pilot-2']
['pilot-2', 'pilot-1']
或者,更简单地说:
VERSIONS_F = [v.strip("'") for v in VERSION]
回复评论:
VERSION = ["'pilot-2'", "'pilot-1'"]
temp_list = ['pilot-1', 'test-3']
print(any(x in [v.strip("'") for v in VERSION] for x in temp_list))
您可以在几行中完成此操作:
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = [item [1:-1] for item in VERSION]
print(VERSIONS_F)
输出:
['pilot-2', 'pilot-1']
这种方式只是简单地从字符串中切出第一个和最后一个字符,假设“”总是在第一个和最后一个位置。
注意:Grismar 也很好地概述了幕后发生的事情
试试这个:
VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = []
for item in VERSION:
temp = item.replace("'",'')
VERSIONS_F.append(temp)
print (VERSIONS_F)
它将打印 ['pilot-2','pilot-1']