簡體   English   中英

如何從字符串列表中刪除雙引號?

[英]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('"')並沒有看到我想要的。

您可以在幾行中執行此操作:

VERSION = ["'pilot-2'", "'pilot-1'"]
VERSIONS_F = [item [1:-1] for item in VERSION]
print(VERSIONS_F)

輸出:

['pilot-2', 'pilot-1']

這種方式只是簡單地從字符串中切出第一個和最后一個字符,假設“”總是在第一個和最后一個位置。

注意:Grismar 也很好地概述了幕后發生的事情

當您打印列表時,Python 將打印列表的表示形式,因此列表中的字符串不會像通常的字符串那樣打印:

>>> print('hello')
hello

相比:

>>> print(['hello'])
['hello']

添加不同的引號會導致 Python 選擇相反的引號來表示字符串:

>>> print(['\'hello\''])
["'hello'"]
>>> print(["\"hello\""])
['"hello"']

初學者 Python 程序員經常犯將控制台上打印的內容與實際值混淆的錯誤。 print(x)不告訴你的實際值x (無論那是),但它的文本字符串表示。

例如:

>>> x = 0xFF
>>> print(x)
255

這里,一個值被分配為其十六進制表示,但當然實際值只是 255(十進制表示),十進制表示是打印整數值時選擇的標准表示。

變量的“真實”值是一個抽象的數值,表示它時所做的選擇不會影響它。

在您的情況下,您使用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 = []
for item in VERSION:
  temp = item.replace("'",'')
  VERSIONS_F.append(temp)
print (VERSIONS_F)

它將打印['pilot-2','pilot-1']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM