如何从字符串列表中删除双引号?

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']