當前要圍繞一個字符串添加單引號,我想出的最佳解決方案是製作一個小包裝函數。Python 2.X圍繞一個字符串添加單引號
def foo(s1):
return "'" + s1 + "'"
有沒有更容易pythonic這樣做呢?
當前要圍繞一個字符串添加單引號,我想出的最佳解決方案是製作一個小包裝函數。Python 2.X圍繞一個字符串添加單引號
def foo(s1):
return "'" + s1 + "'"
有沒有更容易pythonic這樣做呢?
這裏的另一種(也許更Python)的選項,使用format strings:
def foo(s1):
return "'{}'".format(s1)
只是想突出什麼@metatoaster在上面的評論說,因爲我錯過了首先。
使用repr(字符串)將添加單引號,然後在該引號之外使用雙引號,然後使用單引號引起內部單引號,然後引用其他轉義字符。
使用再版(),作爲一個內置的,是更直接的,除非有其他衝突..
s = 'strOrVar'
print s, repr(s), repr(repr(s)), ' ', repr(repr(repr(s))), repr(repr(repr(repr(s))))
# prints: strOrVar 'strOrVar' "'strOrVar'" '"\'strOrVar\'"' '\'"\\\'strOrVar\\\'"\''
的docs狀態其基本上狀態再版(),即表示,是的逆eval()函數:
「對於許多類型,這個功能使得試圖返回傳遞給eval(時會產生一個對象具有相同的值)的字符串,..」
反向引用會更短,但Python 3+中的removed。 有趣的是,StackOverflow使用反引號來指定代碼跨度,而不是突出顯示代碼塊並單擊代碼按鈕 - 但它有一些有趣的行爲。
這樣做的背景(原因/原因)是什麼?如果你的字符串包含引號會怎麼樣?無論如何,嘗試's1 .__ repr __()'與各種字符串,看看這種行爲是否符合您的要求的用法。 – metatoaster
@metatoaster我基本上需要連接許多字符串'+',有些需要單引號,有些不需要單引號,爲了節省行空間,我想出了上述解決方案 – pyCthon
如果你得到一個匹配的字符串你的單引號標準,但也有一個單引號(如'that's'),使用你的方法會導致''that's'''。這是爲您的系統準備/允許的嗎?另外,出於性能原因,建議在字符串列表上使用'str.join'而不是使用'+'將單個字符串片段添加到一起。 – metatoaster