2012-08-24 56 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

(如果您有很长的长字符串列表,则连接速度很慢,这里不是这种情况。) –