python编程的新手,有一些困难可以解决这个问题。 我试图将元组转换为字符串,例如(' h'' e' 4)转换为' he4'。我已经使用.join函数提交了一个版本,我需要提出另一个版本。我给出了以下内容:
def filter(pred, seq): # keeps elements that satisfy predicate
if seq == ():
return ()
elif pred(seq[0]):
return (seq[0],) + filter(pred, seq[1:])
else:
return filter(pred, seq[1:])
def accumulate(fn, initial, seq):
if seq == ():
return initial
else:
return fn(seq[0], accumulate(fn, initial, seq[1:]))
提示如何使用以下内容将元组转换为字符串?
答案 0 :(得分:1)
给定的filter
对此无用,但可以轻松使用给定的accumulate
:
>>> t = ('h','e',4)
>>> accumulate(lambda x, s: str(x) + s, '', t)
'he4'
答案 1 :(得分:0)
只需遍历元组。
#tup stores your tuple
string = ''
for s in tuple :
string+=s
在这里,您将浏览元组并将其中的每个元素添加到新字符串中。
答案 2 :(得分:0)
1)使用reduce
功能:
>>> t = ('h','e',4)
>>> reduce(lambda x,y: str(x)+str(y), t, '')
'he4'
2)使用愚蠢的递归:
>>> def str_by_recursion(t,s=''):
if not t: return ''
return str(t[0]) + str_by_recursion(t[1:])
>>> str_by_recursion(t)
'he4'
答案 3 :(得分:-1)
您可以使用地图并加入。
Caught exception: could not find driver
Map有两个参数。第一个参数是必须用于列表的每个元素的函数。第二个参数是可迭代的。