删除返回输出python3中的''和空格

时间:2013-09-14 22:23:14

标签: python python-3.x

我正在尝试一个必须使用def function(a,b,c,d)的功能 a是一个字符串,所以我做了

a = str(a)

b是一个整数,所以我做了

b= int(b)

c也是一个字符串;

c = str(c)

和d是一个布尔值(我所知道的布尔值是True还是False);所以

d = True

我想将元素的顺序更改为

[c,a,b,d]

我将此分配给result = [c,a,b,d] 当我使用返回功能

return str(result), (because i want to return a string)

我最终得到了

"[ 'c', 'a', b, d]"

我已经尝试了一切来摆脱''以及间距,因为它应该看起来像

'[c,a,b,d]'

我该怎么做才能删除它?

def elem(tree,year,ident,passed):
    tree = str(tree)
    year = int(year)
    ident = str(ident)
    passed = True
    result = [ident,tree,year,passed]
    return str(result)

这是我到目前为止所做的事情

所以,如果我想测试到目前为止我在python shell中的代码,我最终会用

>>> elem("pine",2013,"1357",True)
"['1357', 'pine', 2013, True]"

我想要的输出是     '[1357,松树,2013,真]'

抱歉,如果我没有提供足够的。这就是我现在所拥有的......并且抱歉没有为帖子做好格式化..

4 个答案:

答案 0 :(得分:1)

只需从您拥有的数据结构中创建所需的字符串:

>>> '[{},{},{},{}]'.format('c','a',2,True) 
'[c,a,2,True]'
>>> '[{},{},{},{}]'.format(*['c','a',2,True])
'[c,a,2,True]'
>>> '[{},{},{},{}]'.format(*['1357', 'pine', 2013, True])
'[1357,pine,2013,True]'

或者编辑数据结构的字符串表示形式,使其符合您的要求:

>>> str(['c', 'a', 2, True])
"['c', 'a', 2, True]"
>>> str(['c', 'a', 2, True]).replace("'","").replace(' ','')
'[c,a,2,True]'

在任何一种情况下,当你打印字符串时,最后的外部'会消失:

>>> print('[{},{},{},{}]'.format(*['c','a',2,True]))
[c,a,2,True]
>>> print(str(['c', 'a', 2, True]).replace("'","").replace(' ',''))
[c,a,2,True]
>>> li=['1357', 'pine', 2013, True]
>>> print('[{},{},{},{}]'.format(*li))
[1357,pine,2013,True]

答案 1 :(得分:0)

你有" "的原因是因为它是一个字符串。您返回了列表的字符串表示形式,实际上您应该返回列表:

return result

使用您拥有的字符串,您可以安全地将其转换回ast.literal_eval的列表:

import ast
...
myresult = function(a, b, c, d)
print ast.literal_eval(myresult)

答案 2 :(得分:0)

return "[" + ",".join(result) + "]"

答案 3 :(得分:0)

当您致电str(result)时,它会提供对象result的字符串表示形式。该字符串实际上看起来像取决于对象所属的类的实现(它在类中调用特殊方法__str__来进行转换)。

由于对象(result)属于类list,因此您将获得list的标准字符串表示形式。你不能(理智地)改变list类,所以你需要创建一个不同的表示。

在您的示例代码中,我很困惑您为什么要进行转换。当您需要字符串表示时,为什么要将year转换为int?为什么在passed为参数时将True设置为def elem(tree, year, ident, passed): passed = True result = "[%s,%s,%d,%s]" % (ident, tree, year, passed) return result print(elem("pine", 2013, "1357", True)) ?无论如何:

[1357,pine,2013,True]

给出:

{{1}}