我正在尝试一个必须使用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,真]'
抱歉,如果我没有提供足够的。这就是我现在所拥有的......并且抱歉没有为帖子做好格式化..
答案 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}}