2012-08-24 156 views
-2

我知道這很簡單,但是將我的結果變爲1個單個字符串而不是元組的最佳方式是什麼?在python中創建一個字符串

def lower_case(a): 
    x=a.lower() 
    y = ("This is now Lowercase:",x) 
    return (y,x) 

results = lower_case("LOWER CASE") 
results 

'This is now Lowercase:', 'lower case' 

感謝您對這樣一個愚蠢的問題的幫助。

+4

如果你不想要一個元組,你爲什麼會返回一個元組?爲什麼你定義自己的lower_case()方法,而字符串對象自己提供方法?你想解決什麼問題? –

回答

0

看起來你只是想連接字符串。

def lower_case(a): 
    x=str(a).lower() 
    y = "This is now Lowercase:" + x; 
    return y; 
+2

沒有必要在Python中關閉'';''... –

+1

這是非常糟糕的代碼。 'str(a)'非常和諧,應該使用[duck typing](http://docs.python.org/glossary.html#term-duck-typing)。它還引入了一個令人討厭的bug:如果使用包含非ASCII字符的unicode對象調用該方法,則該方法將失敗並顯示'UnicodeEncodeError',因爲'str()'隱式地嘗試使用ASCII編碼解碼'a'。沒有它,代碼將會正常工作。 –

0

簡單:

def lower_case(a): 
    return "This is now Lowercase: %s"%a.lower() 

或者:

def lower_case(a): 
    return "This is now lowercase: " + a.lower() 

或者:

def lower_case(a): 
    return "".join(["This is now Lowercase: ", a.lower()]) 

如果你不想要一個元組,不使用的元組。您也可以使用others methods to concatenation

0
def lower_case(a): 
    return "".join(["This is now Lowercase: ", a.lower()]) 
1

每一個之前提出這樣或那樣的過於複雜每一個解決方案:

def lower_case(a): 
    return "This is now lowercase: " + a.lower() 

它以最簡單和最直接的方式。

+0

我傾向於同意,除了使用重載的'+'運算符進行字符串連接比使用'str.join()'具有更差的性能。 –

+0

>>> timeit.timeit('「」。join((「x」,「y」))') 0.16582584381103516 >>> timeit.timeit('「x」+「y」') 0.035453081130981445 –

+0

(如果您有很長的長字符串列表,則連接速度很慢,這裏不是這種情況。) –